我正在尝试比较存储在数据库中的密码值(由md5($mypassword)
完成),但是每次输入的密码都不同于DB中的密码时,它仍允许我进行身份验证用户......我试过了:
$rslt['password'] = md5($mypassword)
$rslt['password'] == md5($mypassword)
$rslt['password'] === md5($mypassword)
但它们似乎都不起作用。
代码片段如下:
if((mysql_num_rows($qry)==1)&&($rslt['username']==$myusername)&&($rslt['password'] == md5($mypassword)))
{
echo $rslt['username'];
echo $myusername;
echo $rslt['password'];
echo md5($mypassword);
//$expire=time()+60*60*24*30;
//$_SESSION['user'] = $rslt['username'];
//header("location: ../acct_beta.php");
}
任何想法都会有所帮助。谢谢:D
答案 0 :(得分:2)
可能是因为$mypassword
和/或$myusername
未从用户的输入中获取。确保您没有对这些变量进行硬编码,然后重试
答案 1 :(得分:1)
您可以稍微改变逻辑,让mysql使用
进行比较select count(*) from <table> where username = @username and password = MD5(@password)
如果计数&gt; 0然后它被验证。
答案 2 :(得分:0)
我没有逃避查询字符串......