Bonjour.
J'ai une table dans ma base de donnée qui contient les logins et les mots de passes.
J'ai très bien réussi a faire le password_hash.
par contre je ne comprend pas comment on utilise password_verify, j'ai été voir la doc sur php.net et pour moi c'est pas clair. Car eux ils utilisent le mot de passe en dure pour le vérifier, mais moi je ne sais pas combien de mot de passe il va créer et ce que ça sera. Donc je récupère le mot de passe de la base de donnée, mais je le vérifie par rapport a quoi.
pour l'insertion du mot de passe et son hashage
ça c'est pour la vérification du mot passe et la transmission du login
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 if(empty($message_erreur)){ //on met dans une variable chaque valeur du formulaire $login = trim($_POST["login"]); $pass = trim($_POST["pass"]); $pass_hash = password_hash($pass, PASSWORD_DEFAULT); // insert et utiliser mysqli_real_escape_string //j'ai pas mis le mysqli_real_escape_string car il fait planté le code $sql_insert = "INSERT INTO user (id_user, login, pass) VALUES (NULL, '".$login."', '".$pass/*_hash*/."')"; //je fait une condition qui verifie si la connexion c'est bien passe if(mysqli_errno($connexion) != 0){ die ('ERREUR '.mysqli_error($connexion)); } //j'execute la requete $resultat_insert = mysqli_query($connexion, $sql_insert); // le formulaire ne sera pas réaffiché $affiche_formulaire = TRUE; } // sinon else { // on fabrique un message d'erreur $message = implode(", ", $message_erreur); // on reaffiche le formulaire $affiche_formulaire = true; }
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45 // le minimum de vérification sur les informations reçues par le formulaire if(isset($_POST["login"]) && isset($_POST["pass"])){ // La connexion a échouée if(!$connexion){ //On récupère le beau message d'erreur de connexion généré par mysql (mysqli_connect_error) $msgError = sprintf(" ERREUR : %s", mysqli_connect_error()); exit($msgError); } // pas d'errueurs, nous sommes connecté! $login = mysqli_real_escape_string($connexion, $_POST["login"]); $pass = mysqli_real_escape_string($connexion, $_POST["pass"]); $sql = "SELECT pass FROM user WHERE login = '".$login."' AND pass = '".$pass."'"; // On execute la requête $resultat = mysqli_query($connexion, $sql); //Tout est bon, on peut afficher le résultat de la requête if(mysqli_num_rows($resultat) === 1){ if(password_verify($pass, $ligne["pass"])){ // démarrer la session session_start(); // initialiser une variable de session user $_SESSION['user'] = $login; // redirection sur plat_liste.php header('Location:base_de_donnee/plat/plat_liste.php'); } }else{ // sinon : message = pas ok $message = "Login ou mot de passe eronné"; } }
Partager