Confirmation d'émail
- Accueil
- Forum
- Programmation
- PHP
- Confirmation d'émail
Geromitchi Le 29 août 2016 à 00:45 (Édité le 25 janvier 2019 à 17:52)
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 Le 29 août 2016 à 05:58 (Édité le 1 janvier 1970 à 01:00)
$requser-> execute(array($pseudo, $key));
$crea -> execute(array($pseudo, $email, $mdp, $key, $confirm, $avatar ));
Voilà voilà 😀 Balatharas Le 29 août 2016 à 10:35 (Édité le 1 janvier 1970 à 01:00)
$requser->execute(array($pseudo, $key));
$crea->execute(array($pseudo, $email, $mdp, $key, $confirm, $avatar));
Ranarxhag Le 29 août 2016 à 11:14 (Édité le 1 janvier 1970 à 01:00)
Geromitchi Le 29 août 2016 à 11:48 (Édité le 29 août 2016 à 11:51)
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 Le 29 août 2016 à 12:04 (Édité le 1 janvier 1970 à 01:00)
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 Balatharas Le 29 août 2016 à 16:55 (Édité le 1 janvier 1970 à 01:00)
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 Le 29 août 2016 à 17:04 (Édité le 1 janvier 1970 à 01:00)