Problème d'identification utilisateur

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Problème d'identification utilisateur

Re: Problème d'identification utilisateur

par Saian » 03 mars 2021, 22:41

Salut, sauf erreur de ma part, tu ne devrais pas non plus avoir les fonctions password_hash et password_verify dans le même script. password_hash est à utiliser lors de la création de l'utilisateur et de son insertion en base de données pour enregistrer le password haché. Et password_verify est à utiliser lors de la connexion de l'utilisateur pour vérifier que le password fournis (non haché donc) correspond bien au hash enregistré dans la base de données.

Re: Problème d'identification utilisateur

par Ryle » 03 mars 2021, 13:10

Salutations !

En fait il y a un truc étrange dans ton code, c'est qu'avant d'arriver au password_verify(), tu fais une requête sur ta table membre pour cherches les utilisateurs qui auraient les mêmes pseudo et mot de passe que ceux fournis par l'utilisateur.

Donc soit il y en a bien et ton mot de passe est en clair en base, ce qui fait qu'il n'est pas nécessaire de faire de contrôle sur son hash, mais qui serait pas vraiment sécurisé. Soit le mot de passe est bien hashé en base, auquel cas cette requête ne doit pas te retourner de résultat.

Il faut soit hasher le mot de passe envoyé par l'utilisateur et comparer les deux hash en base directement en SQL, soit uniquement passer le login dans ta requête pour récupérer le mot de passe hasher en base et tu pourra alors comparer en php les deux valeurs (celui envoyé et celui présent en base)

Ps : un "wed" developer, c'est quelqu'un qui développe des applications pour faciliter les mariages ? ;)

Re: Problème d'identification utilisateur

par two3d » 03 mars 2021, 10:25

Salut, met ton code dans la balise PHP stp.

Quelle erreur tu as à l'écran quand tu lance ton script ?

Problème d'identification utilisateur

par Akalitus » 03 mars 2021, 09:40

bonjour, je suis actuellement une formation de wed developer et je rencontre un problème avec la connexion de mes utilisateurs. Je sais que mon code bloque au niveau du passeword_verify mais je n'arrive pas a y remédier voici mon code :
<?php
    require "connexion.php";

    if (isset($_POST["formidentification"])){
        $pseudo_connect = htmlspecialchars(trim($_POST["pseudo_connect"]));
        $mdp_connect = htmlspecialchars(trim($_POST["mdp_connect"]));
        if(!empty($pseudo_connect) && !empty($mdp_connect)){
            $sth = $conn ->prepare("SELECT * FROM membre WHERE pseudo = ? AND mdp = ?");
            $sth->execute(array($pseudo_connect,$mdp_connect));
            // Exécution de la requette
            $sth->execute();
            // Récupération des résultats de la requette
            while($resultat = $sth->fetch(PDO::FETCH_ASSOC)){
                $pseudo = $resultat["pseudo"];
                $mdp= $resultat["mdp"];
                $hash= password_hash($mdp,PASSWORD_DEFAULT);    
            };
              //////// Vérification du mot de passe /////////////
                if(password_verify ($mdp_connect, $mdp)){
                    echo'ok';
                    // Si le mdp est ok
                    // >>>>> Demarrage de la session
                    session_start();
                    $_SESSION['pseudo'] = $pseudo;
                    // >>>>> Création d'un cookie
                    $value = $pseudo;
                    setcookie($pseudo_user, $value, time()+3600);
                    print_r($_COOKIE) . '<br>';
                }else{
               // Si le mdp n'est pas bon, j'affecte une variable pour un msg d'erreur
                echo 'Le mot de passe n\'est pas bon !!!';
  };
    }
}
?>

<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Identification</title>

    </head>
    <body>

        <h1>ENREGISTREZ-VOUS</h1>
        <form action="" method="POST">
            <label for="pseudo_connect">Votre Pseudo</label>
                <input type="text" placeholder="votre pseudo" name="pseudo_connect"><br><br>
                <label for="mdp_connect">Votre Mot de passe</label>
                <input type="text" placeholder="votre mdp" name="mdp_connect"><br><br>
                <input type="submit" name="formidentification" value="Je m'identifie"><br><br>
        </form>
        <a href="index.php">Retour à l'accueil</a>

    </body>
</html>
merci par avance