Confirmation d'émail

Suivre ce topic
Ce topic est suivi par : Personne...
Ce topic a été résolu
Geromitchi

Geromitchi Le 29 août 2016 à 00:45 (Édité le 25 janvier 2019 à 17:52)

Bonsoir,

Lorsque je reçois le mail de confirmation et que je clique dessus rien ne se passe .. Alors que j'ai suivi a la lettre le tuto de Boris ...

Je vous mets le code :

Lors de l'inscription :
if ($mdp == $mdp2) 
                        {
                          $confirm = +0 ;
                          $longeurkey = 15;   //Confirmation par émail
                          $key="";
                          for ($i=1; $i <$longeurkey ; $i++) 
                          { 
                            $key .= mt_rand(0,9) ;
                          }
                          $avatar = "default.jpg" ;
                          $crea = $bdd->prepare("INSERT INTO membres(pseudo, email, mdp, confirmkey, confirm, avatar) VALUES(?, ?, ?, ?, ?, ?)");
                          $crea -> execute(array($pseudo, $email, $mdp, $key, $confirm, $avatar ));
Confirmation :
if (isset($_GET['pseudo'], $_GET['key']) AND !empty($_GET['pseudo']) AND !empty($_GET['key'])) 
      {
        $pseudo = urldecode($_GET['pseudo']);
        $key = $_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 confirm = 1 WHERE pseudo = ? AND confirmkey = ?");
           $updateuser->execute(array($pseudo, $key));
           $msg = "Votre compte a bien été confirmé";
          }
          else 
          {
           $msg = "Votre compte a déjà été confirmé";
          }
        }
        else 
        {
         $msg = "L'utilisateur n'existe pas";
        }
   }
   else {
        $msg = "Erreur";
   }
   
?>
Merci ..
BeKidding

BeKidding Le 29 août 2016 à 05:58

Alors , je ne suis pas sur mais ça peut être ça , tu met un espace à certains endroits de ton code , par exemple aux execute , alors que normalement il n'en faut pas 
$requser-> execute(array($pseudo, $key));

$crea -> execute(array($pseudo, $email, $mdp, $key, $confirm, $avatar ));

Voilà voilà 😀
Balatharas

Balatharas Le 29 août 2016 à 10:35

A part les espaces dans les parenthèses du array, le reste il ne faut pas en mettre:
$requser->execute(array($pseudo, $key));
$crea->execute(array($pseudo, $email, $mdp, $key, $confirm, $avatar));
Ranarxhag

Ranarxhag Le 29 août 2016 à 11:14

Hey ! On pourrait avoir le code qui te permet de te connecter à ta base de données (sans les identifiants, hein) ? C'est juste pour vérifier un truc. 😀
Geromitchi

Geromitchi Le 29 août 2016 à 11:48 (Édité le 29 août 2016 à 11:51)

Salut merci de vos réponses alors Bekiding j'ai enlevé les espaces et toujours rien et pour les arrays pourquoi je dois les enlever ? Alors que dans le tuto tous fonctionne niquel ? et Renarxhag oui biensur voila :

try 
{
  $bdd = new PDO("mysql:host=localhost;dbname=cuisine;charset=utf8", "*", "*", array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION));
} catch (PDOException $e) 
      {
      echo 'Echec de la connexion : ' . $e->getMessage();
      exit;
      } 
BeKidding

BeKidding Le 29 août 2016 à 12:04

Essaie ça pour ton code de connexion sql :
try
    {
      $bdd = new PDO("mysql:host=localhost;dbname=cuisine", "root", "");
      $bdd->exec("SET NAMES utf8");
    }
    catch (Exception $e)
    {
      die('Erreur : ' . $e->getMessage());
    }
Et puis non tes arrays sont bons , seulement les espaces mais tu les as enlevés comme dis
Geromitchi

Geromitchi Le 29 août 2016 à 16:39

Nop toujours page blanche ..
Balatharas

Balatharas Le 29 août 2016 à 16:55

Voilà mon code:
Inscription:
$longueurKey = 13;
$key = "";
for($i=1;$i<$longueurKey;$i++)
{
     $key .= mt_rand(0,9);
}
Confirmation:
if(isset($_SESSION['pseudo']) AND isset($_SESSION['mail']) AND isset($_SESSION['id']))
{   
   $new_msg = $bdd->prepare('SELECT * FROM messages WHERE id_destinataire = ? AND lu = 0');
   $new_msg->execute(array($_SESSION['id']));
   $alert_msg =  $new_msg->rowCount();
   $requser = $bdd->prepare('SELECT * FROM membres WHERE id = ?');
   $requser->execute(array($_SESSION['id']));
   $userinfo = $requser->fetch();
}
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['confirmer'] == 0)
      {
         $updateuser = $bdd->prepare('UPDATE membres SET confirmer = 1 WHERE pseudo = ? AND confirmkey = ?');
         $updateuser->execute(array($pseudo, $key));
         $success = "Votre compte a bien été confirmé 😄 !";
      }
      else
      {
         $erreur = "Ce compte a déjà été confirmé !";
      }
   }
   else
   {
      $erreur = "La clé, ou l'utilisateur n'existe pas !";
   }
}

Geromitchi

Geromitchi Le 29 août 2016 à 17:04

Toujours page blanche avec ton code ^^
Geromitchi

Geromitchi Le 29 août 2016 à 19:28

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