Partage
  • Partager sur Facebook
  • Partager sur Twitter

Connexion d'un membre à une base de données

    9 décembre 2018 à 18:52:26

    Bonjour , ça fait 3 jours que j'essai de régler cette erreur mais je n'y arrive pas j'ai beau chercher partout , essayer tout et n'importe quoi ça ne fonctionne pas !

    J'ai une base de données website qui contient une table client avec un nom un prenom mail password etc ... bref quand je tente a l'aide d'un formulaire PHP d'insérer un nouveau client dans ma base de donnée tout fonctionne parfaitement et mon membre est bel est bien présent dans phpmyadmin , par contre quand j'essai de le connecter lui ou un client déjà présent ( un client que j'ai : mail : a , password : b ) je n'y arrive pas j'ai d'ailleurs mis des erreurs en évidence et je tombe toujours sur le " Le mail et/ou le mot de passe sont incorrects " ce qui veut dire que le script ne trouve pas mon client alors qu'il existe dans la BDD que dois je faire ? :o merci de m'aider ! 

    <?php
    try
    {
        $bdd = new PDO('mysql:host=localhost;dbname=website;charset=utf8','root','',array(PDO::ATTR_ERRMODE => PDO::ERRMODE_WARNING));
    }
    catch(Exception $e)
    {
        die('Erreur :'.$e->getMessage());
    }
    if(isset($_POST['fc']))
    {
        $mc = htmlspecialchars($_POST['mc']);
        $pc = sha1($_POST['pc']);
        if(!empty($mc) AND !empty($pc))
        {
            $requser = $bdd->prepare('SELECT * FROM client WHERE mail = ? AND password = ?');
            $requser->execute(array($mc,$pc));
            $userexist = $requser->rowCount();
            if($userexist == 1)
            {
               
            }
            else
            {
                $erreur = "Le mail et/ou le mot de passe sont incorrects !";
            }
        }
        else
        {
            $erreur = "Tous les champs doivent être complétés !";
        }
    }
    
    ?>
    <html>
    <head>
    <title>Login Form Design</title>
    <link rel="stylesheet" type="text/css" href="connexion.css">
    <meta charset="utf-8" />
    </head>
    <body>
        <div class="loginbox">
        <img src="avatar2.png" class="avatar">
            <h1>Inscription</h1>
            <form action="" method="POST">
                <p>Adresse e-mail</p><input type="text" name="mc" id="button" placeholder="Adresse e-mail">
                <p>Mot de passe</p><input type="password" name="pc" id="button" placeholder="Mot de passe">
                <input type="submit" name="fc" value ="Me connecter" id ="butt">
            </form>
            <?php
                if(isset($erreur))
                {
                    echo '<font color="red">' . $erreur . "</font>";
                }
            ?>
        </div>
    </body>
    </head>
    </html>

    -
    Edité par Aladin78 9 décembre 2018 à 18:54:14

    • Partager sur Facebook
    • Partager sur Twitter
      9 décembre 2018 à 18:54:48

      Salut !

      Alors, pour commencer retire moi ce " htmlspecialchars " qui n'as rien à faire ici.
      de plus, pour les password, utilise password_has($_POST['PasswordOuAutreVariable']) à l'inscription, et password_verify($passwordHashEnBdd, $_POST['Password']) à la connexion :)

      • Partager sur Facebook
      • Partager sur Twitter
        9 décembre 2018 à 18:58:59

        Koyuki Tanaka a écrit:

        Salut !

        Alors, pour commencer retire moi ce " htmlspecialchars " qui n'as rien à faire ici.
        de plus, pour les password, utilise password_has($_POST['PasswordOuAutreVariable']) à l'inscription, et password_verify($passwordHashEnBdd, $_POST['Password']) à la connexion :)

        Merci de ta réponse par contre password_verify($passwordHashEnBdd, $_POST['Password']) doit être mis à quel endroit du code ? 



        • Partager sur Facebook
        • Partager sur Twitter
          9 décembre 2018 à 19:02:07

          -> L'utilisateur soumet le formulaire
           |
           |-> Je vérifie avec l'email, que le client existe
               |
               |-> Le client n'existe pas : Erreur.
               |-> Le client existe : Je récupère le mdp en bdd.
                        |
                        |-> Je compare les deux mdp (password_verify())
                            |
                            |-> Ils corresponde, on le connecte
                            |-> Sinon, erreur.

          • Partager sur Facebook
          • Partager sur Twitter
            9 décembre 2018 à 19:05:51

            Merci de ta réponse je vais tenter de coder tout ça au propre et voir ce que ça donne !
            • Partager sur Facebook
            • Partager sur Twitter
              9 décembre 2018 à 19:39:54

              Pas de soucis, tiens nous au courant :)
              • Partager sur Facebook
              • Partager sur Twitter

              Connexion d'un membre à une base de données

              × 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