8791 sujets
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 ?
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:
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');
}