Formulaire de Connexion PDO
Résolu
Bonjour,
Je souhaiterai mettre mon formulaire de connexion en requète préparé. Je m'en doutais j'ai une erreur "Warning" pouvez-vous me dire où il y a une erreur s'ils vous plait.
Sinon mon formulaire sans PDO fonctionne mais voilà je voudrais essayer de comprendre le fonctionnement. L'erreur se trouve sur la ligne execute.
Je vous remercie beaucoup de votre aide.
Cordialement
Je souhaiterai mettre mon formulaire de connexion en requète préparé. Je m'en doutais j'ai une erreur "Warning" pouvez-vous me dire où il y a une erreur s'ils vous plait.
Sinon mon formulaire sans PDO fonctionne mais voilà je voudrais essayer de comprendre le fonctionnement. L'erreur se trouve sur la ligne execute.
Je vous remercie beaucoup de votre aide.
Cordialement
//on sélectionne la table identifiant et on teste le champ login
$resultats = $bdd->prepare('SELECT t_gestion_adherent.id_adherent, t_gestion_adherent.nom, t_gestion_adherent.prenom, t_gestion_adherent.adresse_mail, t_identifiant.rid_adherent, t_identifiant.categorie_statut, t_identifiant.niveau_statut, t_identifiant.categorie_admin, t_identifiant.login
FROM t_gestion_adherent
LEFT JOIN t_identifiant
ON t_gestion_adherent.id_adherent = t_identifiant.rid_adherent
WHERE login=:login AND pass=:pass');
//on execute la requète
$resultats->execute();
// on récupére les données dans un tableau
$donnees = $resultats->fetch(PDO::FETCH_ASSOC);
5 réponses
-
C'est génial je te remercie de ton aide, j'ai rajouté le pass dans le select et la fameuse ligne execute et oupiiiiiiii ça marche.
Tu as été très réactif c'est super.
Je met mon code en entier à des fois pour quelqu'un qui veux vérifier un formulaire d'identification.
Merci
<?php //on teste si le visiteur a soumis le formulaire if (!empty($_POST)) { //on vérifie si le login et password ne sont pas vide, nulle ou non définie if (!empty($_POST['login']) && (!empty($_POST['pass']))) { //on récupère les valeurs des champs $login = trim($_POST['login']); //supprime les espaces en début et fin de chaine $login = htmlspecialchars($login, ENT_QUOTES); // supprime les caracteres speciaux html dans la chaine $login = stripslashes($login); // Supprime les antislashs d'une chaîne. $pass = trim($_POST['pass']); $pass = htmlspecialchars($pass, ENT_QUOTES); $pass = stripslashes($pass); //cryptage sha1 du mot de pass //$pass = sha1($pass); //on sélectionne la table identifiant et on teste le champ login $resultats = $bdd->prepare('SELECT t_gestion_adherent.id_adherent, t_gestion_adherent.nom, t_gestion_adherent.prenom, t_gestion_adherent.adresse_mail, t_identifiant.rid_adherent, t_identifiant.categorie_statut, t_identifiant.niveau_statut, t_identifiant.categorie_admin, t_identifiant.login, t_identifiant.pass FROM t_gestion_adherent LEFT JOIN t_identifiant ON t_gestion_adherent.id_adherent = t_identifiant.rid_adherent WHERE login=:login AND pass=:pass'); //on execute la requète $resultats->execute(array(':login'=>$login,':pass'=>$pass)); // on récupére les données dans un tableau $donnees = $resultats->fetch(PDO::FETCH_ASSOC); //si le password est différent on met un message d'erreur if ($donnees['pass'] != $pass) { echo "<span class='erreur'>Mauvais mot de passe...ou Mauvais login...Merci de recommencer.</span>"; } //sinon c'est bon else { //on cré des variables accessibles depuis toutes les pages $_SESSION['id_adherent'] = $donnees['id_adherent']; $_SESSION['nom'] = $donnees['nom']; $_SESSION['prenom'] = $donnees['prenom']; $_SESSION['adresse_mail'] = $donnees['adresse_mail']; $_SESSION['categorie_statut'] = $donnees['categorie_statut']; $_SESSION['niveau_statut'] = $donnees['niveau_statut']; $_SESSION['categorie_admin'] = $donnees['categorie_admin']; $_SESSION['login'] = $donnees['login']; // Utiliser la redirection --------------- redir("index.php?body=compte&type=compte"); } } else { echo "<span class='erreur'>Veuillez remplir tous les champs !!!</span>"; } } ?>