我在密码验证方面遇到问题。我正试图从我的密码列中提取一个散列,然后用表单中的密码进行验证。我不确定为什么它不起作用:
$pass = mysqli_query($link, "SELECT password FROM male_users WHERE email=$email");
$hash = mysqli_fetch_assoc($pass);
if (password_verify($password, $hash)) {
echo('Hello');
} else {
echo('Email or Password not mach');
}
它返回了一个错误:mysqli_fetch_assoc()期望参数1是mysqli_result,给定布尔值,但我在堆栈上发现人们成功地使用了它。我做错了什么?提前Thnx!向致以最良好的问候
这样尝试,您的mysqli_fetch_assoc返回数组使用$hash['password']代替$hash,最后在where条件中使用单引号。
$pass = mysqli_query($link, "SELECT password FROM male_users WHERE email='$email'");
$hash = mysqli_fetch_assoc($pass);
if (password_verify($password, $hash['password'])) {
echo('Hello');
} else {
echo('Email or Password not mach');
}