2017-08-23 3 views
-1

Je ne sais pas pourquoi il ne fonctionne pas pour vérifier le mot de passe crypté en utilisant mysqli voici mon code pour vérifier le mot de passe.Comment vérifier le mot de passe crypté avec mysqli?

<?php 
     $sql = $mysqli->query("SELECT * FROM accounts WHERE username ='$username'"); 
     $row = mysqli_fetch_array($sql,MYSQLI_ASSOC); 
     $hash = $row['password']; 

     if (password_verify($hash, $password)){ 
      echo "password valid"; 

     }else{ 
      echo "password invalid"; 
     } 

?> 

et ceci est utilisé pour un mot de passe crypté.

<?php 

     $encrypted = password_hash($password, PASSWORD_DEFAULT); 
?> 

mon code de vérification de mot de passe retourne toujours une fausse déclaration. Je vérifie déjà si mes codes obtiennent vraiment le mot de passe crypté de la base de données. Y a-t-il quelque chose qui ne va pas dans mon code?

Répondre

2

Vous avez utilisé une commande incorrecte pour vos arguments de position pour password_verify: il devrait être le mot de passe en premier, suivi par le hachage:

password_verify($password, $hash) 

Pour plus de détails, refer to the documentation.

+0

Merci beaucoup maintenant, maintenant ça marche. –