Bonjour
j'ai stocké mon hash dans une DB
En effet, le hash est bien stocké dans la DB dasn un VARCHAR (255)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 $cxn = mysqli_connect($host,$user,$password,$database ) or die ("Connexion au serveur impossible, réessayez plus tard"); $pass_hache = password_hash("monmotdepasse", PASSWORD_DEFAULT); $req = "INSERT INTO maTable (pwd) VALUES('$pass_hache')"; $result = mysqli_query($cxn,$req) or die ("La requête ne peut être exécutée");
Puis je vérifie le password saisi avec le hash
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 if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['pass'])) { extract($_POST); $sql = "select pwd from maTable where login='".$login."'"; $req = mysqli_query( $cxn, $sql) or die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error()); $data = mysqli_fetch_assoc($req); //la ligne suivante sert si on ne saisit rien, car on a accès à page.php) if ($data > 0) { $isPasswordCorrect = password_verify($pass, $data['pwd']); if ($isPasswordCorrect){ echo '<p>Mauvais login / password. Merci de recommencer</p>'; include('i.html'); // On inclut le formulaire d'identification exit; } else { session_start(); $_SESSION['log'] = $login; include ('page.php'); } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include('i.html'); // On inclut le formulaire d'identification exit; } } else { echo '<p>Vous avez oublié de remplir un champ.</p>'; include(i.html'); // On inclut le formulaire d'identification exit; }
Pourtant je n'ai pas accès à page.php avec le mot de passe, mais seulement avec le login:
- le login suffit, le mot de passe peut être n'importe quoi sauf le bon mot de passe
- le login + mot de passe ne marche pas
Partager