Connexion d'un membre

Petit nouveau ! | 1 Messages

28 avr. 2014, 15:51

Bonjour, j'essaie de développer un espace client pour mon site cependant je bloque au niveau de la connexion du client... :cry: Les mots de passes sont hachés et stockés dans ma base de données mais je n'arrive pas à me connecter , je n'arrive pas à vérifier si le mot de passe entré est le bon.. voici mon code:
<?php

 include_once 'config.php';
 
 				
				

 
 	if(isset($_POST) && isset($_POST['mail']) AND isset($_POST['pwd0']))
{
	
				$y = $bdd->prepare('SELECT COUNT(*) FROM client WHERE mail =?');
				$y->execute(array($_POST['mail']));
				$x = $y->fetch();
				
	if ($x[0] == 0)
			{
				echo 'Cette adresse email n\'existe pas';
			}
	
	else
	{
		$passe = sha1($_POST['pwd0']);
		$e = $bdd->prepare('SELECT COUNT(*) FROM client WHERE password = ?');
		$e->execute(array($passe));
		
		$rep = $e->fetchColumn();
		

	
	if ($rep == 1)
			{
				session_start();
				$_SESSION['utilisateur'] = $_POST['mail'];
				header('Location: compte.php'); 
			}
	else
			{
					echo 'Mot de passe incorrect';
			}
	
	}

}
 
 				
				
				

?>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

28 avr. 2014, 22:53

salut,

Il faut que tu sélectionne le mot de passe (haché) correspondant à l'adresse email.

ensuite tu hache ce qui est saisie dans le formulaire et la tu compare ce qui provient de la base de donnée avec ce que tu as haché.

@+
Il en faut peu pour être heureux ......

Petit nouveau ! | 4 Messages

29 avr. 2014, 04:36

:non: Tu ne peux pas vérifier les éléments individuellement, mais ensemble, parce que si le mail existe bel et bien, tu ne fais pas le rapport avec le mot de passe d'ou la condition PASSWORD = ? AND USER = ?. Voila après tu hash le mot de passe envoyé pour vérifier qu'il corresponde, à celui inscrit. Tu enregistre le tout dans une session et voila l'utilisateur est connecté :D