Probléme Verification Compte

StudioUna

StudioUna Le 12 avril 2021 à 21:17 (Édité le 12 avril 2021 à 21:29)

Bonjour , je vous raconte mon problème , en gros je n'arrive pas à faire une confirmation de mail , je recoit bien un mail , ou ça m'affiche confirmer votre mail , mais des que je clic dessus , rien , et dans la base de données rien ne s'actualise , je ne sais pas d'ou vient le problème je vous laisse mon code , pour voir si vous trouver l'erreur.

//PageInscription
<?php

$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root' , '');

if (isset($_POST['forminscription'])) {
  if (!empty($_POST['pseudo']) AND !empty($_POST['prenom']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) {
    $pseudo = htmlspecialchars($_POST['pseudo']);
    $prenom = htmlspecialchars($_POST['prenom']);
    $mail = htmlspecialchars($_POST['mail']);
    $mail2 = htmlspecialchars($_POST['mail2']);
    $mdp = sha1($_POST['mdp']);
    $mdp2 = sha1($_POST['mdp2']);

    $pseudolength = strlen($pseudo);
    if($pseudolength <=16){
          if ($mail == $mail2) {
            if (filter_var($mail, FILTER_VALIDATE_EMAIL))
            {
                $reqmail =$bdd->prepare("SELECT * FROM membres WHERE mail = ?");
                $reqmail->execute(array($mail));
                $mailexist = $reqmail->rowCount();
                if ($mailexist == 0) {
                                    if($mdp == $mdp2)
                                    {
                                        $longueurKey = 15;
                                        $key = "";
                                        for($i=1;$i<$longueurKey;$i++){
                                            $key .= mt_rand(0,9);

                                        }
                                        $insertmbr = $bdd->prepare("INSERT INTO membres(Pseudo, prenom , mail, motdepasse, ConfirmKey) VALUES(?, ?, ?, ?, ?)");
                                        $insertmbr->execute(array($pseudo, $prenom, $mail, $mdp,$key));

                                        $header="MIME-Version: 1.0\r\n";
                                        $header.='From:"ChainGMG.com"<support@ChainGaming.com>'."\n";
                                        $header.='Content-Type:text/html; charset="uft-8"'."\n";
                                        $header.='Content-Transfer-Encoding: 8bit';

                                        $message='
                                        <html>
                                            <body>
                                                <div align="center">
                                                <a href="http://localhost/inscription/confirmation.php?pseudo='.urldecode($pseudo).'$key='.$key.'">Confirmer votre Compte</a>

                                                </div>
                                            </body>
                                        </html>
                                        ';

                                        mail($mail, "Confirmation de Compte", $message, $header);

                                        $erreur ='votre compte à bien était crée ! <a href=\'connexion.php\'>Me connecter</a>';
                                    }
                                    else {
                                      $erreur ="Les mots de passe ne correspondes pas";
                                    }
                }
                else {
                  $erreur ='Adresse mail déja utilisée !';
                }
            }
            else {
              $erreur ="Votre adresse mail n'est pas valide !";
            }
          }
          else {
            $erreur = "Les adresses mails ne correspondes pas ";
          }
    }
    else {
      $erreur="Le Pseudonyme doit contenir 16 caractére ou moins";
    }
  }
  else {
    $erreur ="Tous les champs doivent être complétés !";
  }
}

 ?>
<!DOCTYPE html>
<html lang="fr" dir="ltr">
  <head>
    <meta charset="utf-8">
    <link rel="stylesheet" href="style2.css" media="screen" type="text/css" />
    <link rel="icon" type="image/png" href="photos/crytp.png" />
    <title>Inscription</title>
  </head>
  <body>
        <div align="center">
            <span><h2>Creation du compte</h2></span>
            <br/><br/><br/>
            <form method="post" action="">
              <table>
                <tr align="center">
                 <h2><span>Crée un compte</span></h2>
                          <td>
                          <input type="text" placeholder="Votre pseudonyme" name="pseudo" id="pseudo" value="<?php if(isset($pseudo)) { echo $pseudo; } ?>">
                          </td>

                          <td>
                          <input type="text" placeholder="Votre prénom" name="prenom" id="prenom" value="<?php if(isset($prenom)) { echo $prenom; } ?>">
                          </td>
                </tr>
                <tr align="center">
                          <td>
                          <input type="email" placeholder="Votre adresse mail" name="mail" id="mail" value="<?php if(isset($mail)) { echo $mail; } ?>" required>
                          </td>
                          </td>
                          <td>
                          <input type="email" placeholder="Confirmation adresse mail" name="mail2" id="mail2" value="<?php if(isset($mail2)) { echo $mail2; } ?>" required>
                          </td>
                </tr>
                <tr>
                          </td>
                          <td>
                          <input type="password" placeholder="Entrez un mot de passe" name="mdp" id="mdp" required>
                          </td>
                          </td>
                          <td>
                          <input type="password" placeholder="Confirmation mot de passe" name="mdp2" id="mdp2" required>
                          </td>
                </tr>
                <tr>
                </tr>
              </table>
              <input type="submit" name="forminscription" value="Je m'inscris"/>
              Déja un compte? <a href="connexion.php">Connectez-vous!</a>
            </form>
            <div class="erreur">
            <?php
            if (isset($erreur)) {
              echo '<font color="red">'.$erreur."</font>";
            }

             ?>
        </div>

  </body>
</html>
StudioUna

StudioUna Le 12 avril 2021 à 21:18 (Édité le 12 avril 2021 à 21:18)

Voila la page Confirmation mail

<?php
$bdd = new PDO('mysql:host=127.0.0.1;dbname=espace_membre', 'root' , '');

if(isset($_GET['pseudo'], $_GET['key']) AND !empty($_GET['pseudo']) AND !empty($_GET['key'])) {
   $pseudo = htmlspecialchars(urldecode($_GET['pseudo']));
   $key = htmlspecialchars($_GET['key']);
   $requser = $bdd->prepare("SELECT * FROM membres WHERE pseudo = ? AND ConfirmKey = ?");
   $requser->execute(array($pseudo, $key));
   $userexist = $requser->rowCount();
   if($userexist == 1) {
      $user = $requser->fetch();
      if($user['confirme'] == 0) {
         $updateuser = $bdd->prepare("UPDATE membres SET confirme =1 WHERE pseudo = ? AND confirmkey = ?");
         $updateuser->execute(array($pseudo,$key,$confirme));
         echo "Votre compte a bien été confirmé !";
      } else {
         echo "Votre compte a déjà été confirmé !";
      }
   } else {
      echo "L'utilisateur n'existe pas !";
   }
}
?>
StudioUna

StudioUna Le 12 avril 2021 à 21:29

Et voila ce que j'ai mis dans ma BDD

StudioUna

StudioUna Le 12 avril 2021 à 21:50

ps : Le confirme et bien en valeur par defaut à 0

Donuts

Donuts Le 14 avril 2021 à 21:12 (Édité le 14 avril 2021 à 21:13)

Hello sur la page de confirmation :

$updateuser = $bdd->prepare("UPDATE membres SET confirme =1 WHERE pseudo = ? AND confirmkey = ?");
             $updateuser->execute(array($pseudo,$key));

Je testerai en retirant la variable $confirme dans l'execute. Vu que ta valeur est déjà définit dans ta requête prepare ( confirme=1 ). Forcément le code recherche la variable $confirme de l'execute, mais celle ci n'existe pas.

StudioUna

StudioUna Le 16 avril 2021 à 01:37

Il n'y à pas moyen de te contacter discord? ça serait mieux pour parler rapidement :p

Donuts

Donuts Le 16 avril 2021 à 10:14

je n'ai plus de compte discord, et sur discord y'a pa de mise en page pour copier du code. ;)

StudioUna

StudioUna Le 16 avril 2021 à 11:21

Ah mince , car cela ne fonctionne toujours pas :p

Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte