Bonjour

j'ai stocké mon hash dans une DB
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");
En effet, le hash est bien stocké dans la DB dasn un VARCHAR (255)

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