Requête fetch() return false

Ce sujet est résolu
208625
,

Bonjour à tous!

Je débute en développement web et j'ai actuellement à réaliser un système d'inscription et de login avec PHP/MySQL et PDO. L'inscription fonctionne au niveau de l'insertion des données dans ma BDD. Parcontre ça coince pour récupérer les données de l'utilisateur sur la page du profil. Pareil pour le login, ça fonctionne pas du tout.

Voici mon code:

if($_SERVER["REQUEST_METHOD"] == "POST"  && isset($_POST['loginBtn'])) {
     $conn = htmlspecialchars($_POST['username']);
     $pass = $_POST['pwd'];

     try {
          $requete = $pdo->prepare('SELECT * FROM profil WHERE username = ?  AND pwd = ?');
          $requete->execute([$conn, $pass]);
          $userInfo = $requete->fetch();

          if(password_verify($pass, $userInfo->pwd)) {
               $_SESSION['auth'] = $userInfo;
               $sucess = 'Connexion réussie';

               // header('Location:profil.php');

          } else {
               $errorMessage = 'Nom d\'utilisateur ou mot de passe incorrecte';
          }
     } catch (PDOException $e) {
          echo 'Erreur : '.$e->getMessage();
     }

} else {
     $errorMessage = 'Veuillez remplir tous les champs';
}

Je n'arrive pas à créer la connexion et je pense que c'est à cause de cette ligne: $userInfo = $requete->fetch();
Quand je fais un var_dump() de ma variable $userInfo, ça me retourne false et je comprends pas pourquoi.

En dehors de ça mon script a l'air de bien fonctionner. Je suis un peu désespérée car ça fait plusieurs jours que je bloque sur ce point sans comprendre la cause. Si quelqu'un a une idée sur la raison qui crée mon problème, toute piste serait fort appréciée pour m'aider à trouver une solution!

Merci d'avance à ceux qui pourront m'apporter du soutien, je vous souhaite à tous une bonne journée!

2 Réponse

40917
,

Bonjour,
Pas de htmlspecialchar sur les donnée entrée en BDD, c'est uniquement pour l'affichage
Puisque ton mdp est crypté, tu ne peux pas le mettre en condition de ta requête
Avant de faire password_verify il faut tester que $userInfo soit vrai

208625
,

Bonjour,

Super merci ça a fonctionné nickel pour le login!

Toutefois j'ai toujours le même problème avec l'inscription, je vais essayer de chercher encore un peu sinon je reviendrai poster mon code!

Merci encore!