Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme insertion password_verify

    17 mars 2018 à 21:09:30

    Bonjour,

    J'ai un petit projet, celui de faire un petit site internet . J'ai déjà fait ma page d'insription et je suis sur ma page de connexion.

    Alors voilà mon problème, je souhaite vérifier que le mot de passe de la base de donnée et celui rentré par l'utilisateur soit identique mais le mot de passe de la BDD et celui de l'utilisateur sont différent alors que j'utilise password_verify.

    Voici mon code php:

    if(isset($_POST['formconnect']))
    	{
    		$emailconnect = htmlspecialchars($_POST['emailconnect']);
    		$mdpconnect = htmlspecialchars($_POST['mdpconnect']);
    		if(!empty($emailconnect) AND !empty($mdpconnect))
    		{
    			$requser = $bdd->prepare('SELECT * FROM membres WHERE email = ? AND pass = ?');
    			$requser->execute(array($emailconnect, $mdpconnect));
    			$user = $requser->fetch();
    			if(password_verify($mdpconnect, $user['pass']))
    			{
    				
    			}
    			else
    			{
    				$erreur = "Email ou mot de passe incorrect !";
    			}
    		}
    		else
    		{
    			$erreur = "Tous les champs doivent être remplis !";
    		}
    	}



    -
    Edité par ChrisRod 17 mars 2018 à 21:10:30

    • Partager sur Facebook
    • Partager sur Twitter
      17 mars 2018 à 21:15:13

      Bonsoir,

      Pas de htmlspecialchars, cela est fait pour l'affichage.

      Avant de fait ton password_verify, il te faut vérifier que $user ne soit pas vide.

      • Partager sur Facebook
      • Partager sur Twitter
        17 mars 2018 à 21:23:00

        Bonjour,

        Justement $user sera toujours vide puisque tu compares un mdp hashé (dans la bdd) avec un non hashé.

        <?php if(!empty($_POST['mdpconnect']) && !empty($_POST['emailconnect']))
            {
                    $requser = $bdd->prepare('SELECT pass FROM membres WHERE email = ?');
                    $requser->execute(array($_POST['emailconnect']));
                    $user = $requser->fetch();
                    if(!password_verify($_POST['mdpconnect'], $user['pass']))
                    {
                        $erreur = "Email ou mot de passe incorrect !";
                    }
                }
                else
                {
                    $erreur = "Tous les champs doivent être remplis !";
                }
            }



        • Partager sur Facebook
        • Partager sur Twitter
          17 mars 2018 à 22:29:39

          Donc si je comprend bien, il faut que je hash le mdp de l'utilisateur et que je compare les deux

          mais si je fait ça ils seront différent car le hashage est unique

          • Partager sur Facebook
          • Partager sur Twitter
            17 mars 2018 à 22:49:29

            non, tu passes le mot non hashé du formaulaire et celui hashé de la bdd.

            C'est la fonction qui vérifie que les deux sont bien identique puisque le mot de pass hashé contient la clé de hachache.

            • Partager sur Facebook
            • Partager sur Twitter

            probleme insertion password_verify

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown