Stockage en BD et vérification d'un mot de passe

Charlotte
Invité n'ayant pas de compte PHPfrance

23 juin 2015, 13:35

Bonjour,

Voilà plusieurs jours que je planche sur comment stocker correctement un mot de passe puis le comparer avec le mot de passe rentré par l'utilisateur... je crois avoir un peu tout essayé, mais le résultat reste invariable : les deux mots de passe ne sont pas considérés identiques.

En gros et pour simplifier quand je créé l'utilisateur je fais ça :
$mot_passe = password_hash($_POST['password'], PASSWORD_BCRYPT);		

$query = mysql_query('INSERT INTO NM_utilisateur (password, nom, prenom, mail, ....) VALUES ("'.$mot_passe.'", "'. $_POST["nom"].'", "'. $_POST['prenom'].'", "'.$_POST['mail'].'",....') or die (mysql_error());
Quand je veux le tester je fais ça :
$query = mysql_query("SELECT Id_user FROM NM_utilisateur WHERE NM_utilisateur.mail = '".$mail."' ") or die(mysql_error());
		if($data = mysql_fetch_array($query)) 
		{
			$Id_user = 	$data['Id_user'];	
			$mot_passe = $data['password'];
				
			if(password_verify($_POST["password"], $mot_passe)) 
			{
				$_SESSION['s_Id'] = $Id_user;
				....
				$pass = true;
			}
			else
			{
				$error = "Le mot de passe est incorrect.";
			}
               }
Si vous voyez où est le problème moi je ne vois plus...
Merci d'avance pour vos commentaires,

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

23 juin 2015, 13:47

Bonjour,
SELECT Id_user FROM NM_utilisateur
Tu n'aurais pas oublié de demander à récupérer le mot de passe dans ta requête SELECT ?
Quand tout le reste a échoué, lisez le mode d'emploi...