這是我學會表的模式:如何從查詢中獲取值並將其與字符串進行比較?
Society(SocietyName, Email, Password, Status)
所以基本上我創建在用戶輸入電子郵件和密碼登錄頁面。如果存在與數據庫中的電子郵件相匹配的電子郵件,則檢查其狀態是否與總統或教職人員或學生事務辦公室相同。基於此,它重定向到不同的頁面。 以下是我的代碼:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
namespace WebApplication3 {
public partial class WebForm1 : System.Web.UI.Page {
MySql.Data.MySqlClient.MySqlConnection conn;
MySql.Data.MySqlClient.MySqlCommand cmd;
MySql.Data.MySqlClient.MySqlDataReader reader;
String QueryStr;
String name;
protected void Page_Load(object sender, EventArgs e) { }
protected void clicked(object sender, EventArgs e) {
String ConnString = System.Configuration.ConfigurationManager.ConnectionStrings["Webappconstring"].ToString();
conn = new MySql.Data.MySqlClient.MySqlConnection(ConnString);
conn.Open();
String QueryStr2 = "";
QueryStr = "";
QueryStr = "Select * from the_society_circle.society WHERE Email= '" + Emailtxt.Text + "' And Psswd=' " + passwordtxt.Text + "'";
cmd = new MySql.Data.MySqlClient.MySqlCommand(QueryStr, conn);
reader = cmd.ExecuteReader();
QueryStr2 = "Select Status from the_society_circle.society where Email = '" + QueryStr + "'";
name = "";
while (reader.HasRows && reader.Read()) {
name = reader["Email"].ToString();
}
if ((QueryStr2== "president" || QueryStr2 == "faculty member") && reader.HasRows) {
Session["Email"] = name;
Response.BufferOutput = true;
Response.Redirect("WebForm2.aspx", true);
} else {
Emailtxt.Text = "invalid user";
}
conn.Close();
}
}
}
的問題是,如果永遠不會執行並聲明它總是打印無效用戶。
PS:進出口新的Web開發:d
是否「點擊」運行的方法呢?請用調試器檢查它,如果它根本沒有運行,那麼你有解決這個問題的方法 - 你需要把它設置爲事件處理程序。如果該方法運行,那麼你會得到什麼樣的錯誤/異常?您可以使用調試器瀏覽代碼並逐步調查它的工作原理。 – msporek
是的,肯定事件處理程序正在工作。如果它沒有工作,那麼它不應該打印「無效用戶」。 – puffles
這段代碼揭示了一些嚴重的問題!這很容易sql注入。你把你的密碼存儲爲明文?! – khlr