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

        //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

  1. 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>";
        }
    }
    ?>
    
    0