Bonjour à tous!
Je me suis mis à l'apprentissage de PHP et MySQL et j'ai une question, sur la façon de valider la connexion d'un utilisateur.
Ce n'est qu'une petite "application" pour moi-même pour apprendre.
J'essai de suivre les indications du manuel PHP [ici]
Il doit y avoir une subtilité qui m'échappe, mais je suis incapable de faire une validation avec le mot de passe "hashé".
J'ai un page "registration.php" qui permet l'enregistrement d'un utilisateur.
J'enregistre le mot de passe via cette fonction PHP :
Je suis en mesure de voir dans la BD que le hash s'est bien enregistré.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $hasedPassword = password_hash($_POST['regPassword'], PASSWORD_BCRYPT);
Lorsque je test la connexion (login.php), je valide le mot de passe du formulaire avec celui stocké dans la BD avec la fonction password_verify, tel qu'indiqué dans la doc de php [ici] :
De ce que je vois, la fonction password_hash / password_verify génère un hash différent à chaque exécution.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 $loginPassword = $_POST['loginPassword']; $sqlStm = $connection->prepary($query); $sqlStm->execute([$_POST['loginEmail']]); $res = $sqlStm->fetch(); if (password_hash($loginPassword, $res['password']) === $res['password']){ echo "Oui"; } else { echo "Non"; }
Donc je ne comprends pas comment je peux réussir à valider le mot de passe?
Qu'est-ce que je ne comprends pas ?
Un Gros Merci!
Partager