我尝试将salt与md5()函数一起分配给password参数。但PHP在执行代码时会显示错误消息。
错误消息严格标准:只应通过引用传递变量 当我尝试执行以下代码时显示。我试图将引用赋给变量并将其传递给md5()函数。但是PHP仍然显示相同的错误消息。
global $Database;
if ($stmt = $Database -> prepare("SELECT * FROM users WHERE username = ? and password = ?")) {
$salt = $this->salt;
$stmt -> bind_param("ss", $user, md5($pass . $salt));
$stmt -> execute();
$stmt -> store_result();
if ($stmt -> num_rows > 0) {
$stmt -> close();
return TRUE;
} else {
$stmt -> close();
return FALSE;
}
} else {
die("ERROR: Could not prepare MySQLI statement");
}
答案 0 :(得分:0)
bind_param
的{{1}}需要引用变量。您无法直接使用params
,您需要先将其分配给变量:
md5()
然后,使用它:
md5pass = md5($pass . $salt);
提示:请勿将$stmt -> bind_param("ss", $user, $md5pass);
用于散列密码。您可以将md5()
与blowfish算法一起使用,因为它更安全。