我试图验证用户的登录并比较两个密码(它们在数据库中被散列)。我很确定这只是一些我找不到的愚蠢的错误。这是我保存到db时的散列方式。$password = password_hash($_POST["password"], PASSWORD_BCRYPT); --这是我的登录方法:
if(isset($_POST['login'])){
$stmt = $mysqli->prepare("SELECT `password` FROM users WHERE username=?");
$stmt->bind_param("s", $username);
$username = $_POST["username"];
$password = $_POST["password"];
$stmt->execute();
$stmt->bind_result($result);
if(password_verify($password, $result)){
header("Location: http://localhost/test2/Home.php");
}
else{
echo "<script type='text/javascript'>alert('Something went wrong!')</script>";
echo $mysqli->error;
echo $stmt->error;
}
} 为了测试目的,我试图echo错误,但它没有显示任何东西。
发布于 2016-05-25 05:55:08
忘记获取数据表单查询结果
$stmt->execute();// execute query
$stmt->bind_result($result);// bind result
while ($stmt->fetch()) {// fetch data
$pass = $result;
}
if (password_verify($password, $pass)) {
header("Location: http://localhost/test2/Home.php");
}发布于 2016-05-25 05:52:59
变化
if(password_verify($password, $result)){至
if(password_verify($password, $result['password'])){https://stackoverflow.com/questions/37428697
复制相似问题