J'essaie de créer un script login.php qui utilise le cryptage password_verify(). Aucun des sujets étaient clairs et le problème est que dans chaque exemple, il semble maintenant pour moi comme çaOù placer password_verify() dans php quand vous vous connectez et avez le registeration.php dans un fichier externe
$password = '123';
$hashed = '$2y$10$Lz6eWEzHqhNhiPkNYX/LAOfP.1zuyYJSc4u66TvF1bce9WrSbnSJK';
$ver_pass = password_verify($password, $hashed){..}
la chose est que je suis en train de récupérer le mot de passe haché à partir d'une base de données et non d'une chaîne hardcoded interne . Mon exemple de code:
login.php
$password = mysqli_real_escape_string($database, $password);
//Check username and password from database
$query =
"SELECT id FROM `register`
WHERE `username` = '$username'
AND `hashed_p` = '$password'";
$result = mysqli_query($database,$query);
$row = mysqli_fetch_array($result,MYSQLI_ASSOC);
//If username and password exist in our database then create a session.
$verified_password = password_verify($password, $hashed_password);
if(mysqli_num_rows($result) && $verified_password){
echo start session succesfully
}else{ echo error}
}
register.php
$password = mysqli_real_escape_string($database, $password);
$hashed_password = password_hash($password, PASSWORD_DEFAULT);
$query = "SELECT email FROM register WHERE email='$email'";
$result = mysqli_query($database, $query);
$row = mysqli_fetch_array($result, MYSQLI_ASSOC);
$query = mysqli_query($database,
"INSERT INTO `register` (`hashed_p`) VALUES ('".$hashed_password."')";
if ($query) {....}
Soit dit en passant. Le processus d'enregistrement est réussi et le fichier password_hash() fonctionne correctement dans le fichier register.php. Mais dans le fichier login.php je ne sais pas comment récupérer le mot de passe hashé de la base de données et l'utiliser pour le vérifier. AAny help apprécié.
vous devez sélectionner id & mot de passe _without_ checking for passoword. _Then_ vous vérifiez si le pwdHash de db ('$ row ['hashed_p']') correspond à celui que l'utilisateur a donné via password_verify. – Jeff