Mots de passes

TPCS -  
avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour ,

J'ai créé un jeu de pronostics sur mon site
avec un formulaire serif , inscription puis le jeu tout fonctionne
je reçois bien les mails ,mais je but sur le mot de passe
comment authentifier celui-ci à la prochaine visite de l'internaute.
base etc...

merci de votre réponse
Edit : suppression adresse site.

1 réponse

avion-f16 Messages postés 19252 Date d'inscription   Statut Contributeur Dernière intervention   4 507
 
Il suffit de récupérer le mot de passe et l'id du membre dont l'identifiant est égal à celui entré dans le formulaire.
Après, tu comptes le nombre d'entrées.
Si c'est supérieur à 0, alors tu vérifies si le mot de passe récupéré correspond à celui entré dans le formulaire. Si c'est le cas, alors tu stockes l'ID dans une variable de session. Sinon, tu affiches un message pour dire que le pass est mauvais. Si le nombre de ligne est égal à 0, alors tu affiches un message pour dire que l'identifiant n'existe pas.

En PHP, ça donne quelque-chose comme :
<?php
session_start();

if(isset($_POST['login']) && isset($_POST['password'])) {
	if(empty($_POST['login']) || empty($_POST['password']) {
		echo 'Au moins un champ est vide.';
		afficherFormulaire();
	} else {
		$login = $_POST['login'];
		$password = md5($_POST['password']);
		
		$pdo = new PDO('mysql:host=localhost;dbname=db_test','root','');
		$sql = 'SELECT 'id', 'password' FROM 'membres' WHERE 'login' = '.$pdo->quote($login);
		$req = $pdo->query($sql);
		
		if($req->rowCount() > 0) {
			$membre = $req->fetch(PDO::FETCH_OBJ);
			if($membre->password == $password) {
				$_SESSION['id'] = $membre->id;
				echo 'Vous êtes désormais connecté.<br/>'
				 . '<a href="index.php">Retour à l\'accueil</a>';
			} else {
				echo 'Mot de passe incorrect.';
				afficherFormulaire();
			}
		} else {
			echo 'Identifiant inconnu.';
			afficherFormulaire();
		}
	}
} else {
	afficherFormulaire();
}
?>
0