我不是php程序员,所以我只知道我在网上查找了关于md5
标记的内容。
我正在检查php页面中的密码是否匹配。我在php url中发送密码,并用以下代码检索:
$u_pswd = md5(trim(strip_tags($_REQUEST['pswd'])));
然后我运行一个查询来获取用户的密码,这样我就可以检查它们是否相同:
$usql = "SELECT user_password FROM ft_users WHERE user_email = '".$u_mail."'";
$ures = mssql_query($usql);
$urow = mssql_fetch_array($ures);
if ($urow['user_password'] = $u_pswd) {
// passwords match
} else {
// passwords do not match
}
我的问题是,它说密码每次都匹配。例如,如果当前密码是PASSWORD
,并且我向它发送密码INCORRECT
,则输出为:
$_pswd
=64a4e8faed1a1a0bf8bf0fc84938d25
$urow['user_password']
=64a4e8faed1a1a0bf8bf0fc84938d25
有人能帮我解决为什么说密码是一样的,而不是一样的吗?
不要使用"="进行比较。"="将赋值,并且任何表达式"$var=$value"都将求值为true。请改用"=="。
if ($urow['user_password'] == $u_pswd) { ... }
=用于赋值,在您的代码中,您将$u_pswd
值赋值给$urow['user_password']
您需要使用==来比较这些值是否相等,以获得所需的结果
$usql = "SELECT user_password FROM ft_users WHERE user_email = '".$u_mail."'";
$ures = mssql_query($usql);
$urow = mssql_fetch_array($ures);
if ($urow['user_password'] == $u_pswd) {
}
else
{
}
希望能有所帮助。