【发布时间】:2013-06-09 17:46:08
【问题描述】:
从我从 textbox1,textbox2 获得的输入中,我想检查 DB,如果给定的用户名和密码组合可用,那么我想用 textbox3 中可用的输入更新密码。以下是我的代码,但我的更新语句似乎无法正常工作,请帮助我更正它...
protected void Button1_Click(object sender, EventArgs e)
{
MySqlConnection connection = new MySqlConnection("server=localhost; database=e-learningsystem; uid=root; password=123;port=3307;");
connection.Open();
try
{
MySqlCommand cmd1 = new MySqlCommand("UPDATE lecturer Set Password= '" + TextBox3.Text + "' WHERE UserName='" + TextBox1.Text + "' AND Password='" + TextBox2.Text + "'", connection);
cmd1.ExecuteNonQuery();
if (cmd1.ExecuteNonQuery() > 0)
{
Response.Write(@"<script language='javascript'>alert('Your Password Has Been Changed successfully!, Congratulations!')</script>");
}
else
{
Response.Write(@"<script language='javascript'>alert('Your Password Has Not Been Changed successfully!, Sorry!')</script>");
}
connection.Close();
}
catch (Exception ex)
{
Response.Write(@"<script language='javascript'>alert(ex.Message)</script>");
}
}
【问题讨论】:
-
呃。 “Sql注入”,去谷歌,认真的。您的系统存在风险。现在,我可以使用更改密码来销毁您的数据库。
-
然后阅读有关纯文本密码存储的信息。您不应该存储密码。你甚至不应该加密它们。您应该应用 salted hash 的密码(理想情况下使用每个用户的 salt) - 并存储散列 only。
-
现在:咆哮——回到最初的问题:“工作不正常”是什么意思?怎么了?还是没有?
-
呵呵,既然你的代码提到了“e-learningsystem”,这让 Bobby Tables 尤其心酸:xkcd.com/327
-
更新后的值没有发送到数据库