【发布时间】:2018-07-29 13:59:06
【问题描述】:
您好,我的验证密码 (PHP-7) 有问题。
这是我的代码:
if(isset($_POST['change_pass'])){
global $conn;
$id = '1';
$pass = password_hash($_POST['pass'], PASSWORD_DEFAULT);
$conf_pass = $_POST['conf_pass'];
$verif_pass = $_POST['verif_pass'];
$query = $conn->query("SELECT * FROM bdd WHERE id='$id'");
$data = $query->fetch(PDO::FETCH_ASSOC);
if(!empty($pass) && !empty($conf_pass) && !empty($verif_pass)){
if(password_verify($conf_pass, $pass)){
if($pass == $conf_pass){
$update = $conn->query("UPDATE bdd SET password='$pass' WHERE id='$id'");
if($update){
echo 'Mot de passe changé';
}else{
echo 'Erreur SQL';
}
}else{
echo 'Les mots de passe ne correspondent pas'; var_dump(password_verify($conf_pass, $pass));
}
}else{
echo 'La confirmation du mot de passe actuelle est erronée';
}
}else{
echo 'Vous devez compléter tous les champs';
}
}
并且错误消息是: Les mots de passe ne 通讯员 pasbool(true)
有人看出有什么问题吗?
【问题讨论】:
-
password_verify应该是未散列的密码和数据库密码。 -
$pass == $conf_pass,这将始终为 false,$pass将包含哈希,但$conf_pass将是普通密码。 -
失败了^^我累了,谢谢大家。
标签: php password-hash