我正在制作一个注册和登录表单,注册使用password_hash完成。
它可以正确插入数据库,但是一旦我尝试登录,哈希密码(输入的登录密码)就与数据库内部密码不同。
这是我登录的地方:
require('database.php');
$username = $_POST['pseudo'];
$realpass = $_POST['password'];
//echo $username;
//echo $realpass;
//$password = password_hash($realpass, PASSWORD_DEFAULT);
//echo $password;
$query = $dbh->prepare("SELECT `password` FROM my_user WHERE `login` = ?");
$query->bindParam(1, $username);
$query->execute();
$hashed = $query->fetch();
echo $hashed[0];
if(password_verify($realpass,$hashed[0])){
echo 'mdp est bon';
}else {
echo "n'est pas bon";
}
在这里我将密码哈希以将其插入数据库:
require('database.php');
$newpass = password_hash($password, PASSWORD_DEFAULT);
$stmt = $dbh->prepare("INSERT INTO my_user (login, password, email) VALUES (?,?,?)");
$stmt->bindParam(1, $login);
$stmt->bindParam(2, $newpass);
$stmt->bindParam(3, $email);
$stmt->execute();
header('Refresh:5; url=login.php');
当我echo $hashed[0];
与新的散列不匹配