这是我学会表的模式:如何从查询中获取值并将其与字符串进行比较?
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