8721 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

Oui id_membre existe bien!
Si tu parles de ma page de bdd, oui j'ai réalisé quelques inscriptions pour pouvoir tester plusieurs cas
ZeLL0uN a écrit :

Rien ne marche, j'ai affiché les POST et les variables de la bdd pour m'assurer que les valeurs passés bien dans la page.


Quelles sont les valeurs de tes POSTS que tu récupères et quel est le résultat de la requête ?

Quand tu dis que rien ne marche, ça veut dire quoi : Tu as une page blanche? Ta requête ne retourne rien? Tes tests ne se vérifient pas ?
Quand je dis que rien ne marche c'est que le script me laisse sur la page blanche pour chaque type de test, il ne me redirige pas en cas d'erreur ou de succès.

Les résultats, d'abord ceux du formulaires qui passent bien vers la page puis ceux de la requête SQL qui passe ensuite dans le binColumn!
En effet, il y avait des erreurs dans le code que je t'ai filé!

J'ai donc repris ta base Fontlist, ta table Membres et j'ai corrigé mes erreurs. Voilà le code qui fonctionne nikel chez moi:


<?php
	
	// Toujours en début de fichier
	session_start();		

	// Connexion à ma base de données
	try
	{
		$bdd = new PDO('mysql:host=localhost;dbname=Fontlist', 'root', '');
	}
	catch (Exception $e)
	{
	        die('Erreur : ' . $e->getMessage());
	}

	// Inutile de tester si les valeurs existent. Si elles sont vide, la requête ne retournera rien. 
	$login = $_POST['login'];
	$password = $_POST['password'];

	// Je prepare ma requête, ATTENTION aux injections SQL. 
	$sth = $bdd->prepare('SELECT id_membre, email_membre, mdp_membres FROM Membres WHERE email_membre = :login AND mdp_membres = [langue]assword; ');

	// Je bind mes valeurs de requête avec ce que j'ai récupérer avec mon formulaire de connexion
	$sth->bindParam (":login", $login); 
	$sth->bindParam (":password", $password); 


	// J'execute ma requête
	$sth->execute();
	
	// Je récupère UN SEUL résultat de ma requête. On imagine donc qu'il n'est pas possible d'avoir deux utilisateurs avec le même mail.
	$user = $sth->fetch(PDO::FETCH_ASSOC);
	$sth->closeCursor();

	// Si dans mon curseur, j'ai un ID de membre, c'est que dans ma base, j'ai bien un utilisateur qui correspond à cet email et à ce MDP. Je lance la connexion
	if(isset($user["id_membre"]) && $user["id_membre"] != ""){
		
		// Oui. Pourquoi ne pas y rajouter, l'ID de l'utilisateur. Ca pourrais par la suite permettre la récupération de toute les infos. Pour le profil par exemple.
		$_SESSION['login'] = $login;
		
		// Stocker le password ... Pourquoi faire?
		//$_SESSION['password'] = $password;
		
		// Quel est l'interêt de cette variable? Si je suis connecté, alors ma session existe, sinon, c'est que je suis déconnecté. Pas besoin d'une variable en plus
		//$_SESSION['logged'] = true;
		
		header('Location: index.php');
		
	}else{
		// Je déclenche une erreur
		header('location: session.php?error=1');
	}
Tout fonctionne! Yokii je te remercie grandement pour le temps que tu as passé à résoudre mon problème Smiley biggrin Smiley smile
Pages :