TheDialge-123
Messages postés239Date d'inscriptionsamedi 18 février 2012StatutMembreDernière intervention 3 août 2016
-
3 août 2016 à 00:42
TheDialge-123
Messages postés239Date d'inscriptionsamedi 18 février 2012StatutMembreDernière intervention 3 août 2016
-
3 août 2016 à 13:27
Bonjour , récemment j'ai regardé un tutoriel pour envoyer un mail de confirmation à un utilisateur lorsqu'il s'inscrit ,il doit donc activer son comte .
le problème , c'est que je n'arrive pas à faire en sorte que ma page login.php détecte si l'utilisateur à activé son compte et donc l'empêcher de se connecter , je vous passe le code :
voici la page register.php (celle qui envoie l'email)
<html> <body> <?php
$bdd = new PDO('mysql:host=localhost;dbname=espace_membre', 'root', '');
if(isset($_POST['forminscription'])) { $pseudo = htmlspecialchars($_POST['pseudo']); $mail = htmlspecialchars($_POST['mail']); $mail2 = htmlspecialchars($_POST['mail2']); $mdp = sha1($_POST['mdp']); $mdp2 = sha1($_POST['mdp2']); if(!empty($_POST['pseudo']) AND !empty($_POST['mail']) AND !empty($_POST['mail2']) AND !empty($_POST['mdp']) AND !empty($_POST['mdp2'])) { $pseudolength = strlen($pseudo); if($pseudolength <= 255) { 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) {
$message=' <html> <body> <div align="center"> <center><h2>Validation de votre inscription sur Epsis</h2></center> <center>Bonjour , nous vous remercions pour votre inscription sur Epsis.<br /> Pour activer votre compte, veuillez cliquer sur le lien ci dessous ou copier/coller dans votre navigateur internet.<br /><br /></center> <center><a href="http://epsis.pe.hu/confirmation.php?pseudo='.urlencode($pseudo).'&key='.$key.'" rel="nofollow" target="_blank">Confirmer mon compte</a></center><br /> <center>ou</center><br /> <center><a href="http://epsis.pe.hu/confirmation.php?pseudo='.urlencode($pseudo).'&key='.$key.'" rel="nofollow" target="_blank">http://epsis.pe.hu/confirmation.php?pseudo='.urlencode($pseudo).'&key='.$key.'</a></center><br /> <center>-----------------------------------</center><br /><br /> <center>Ceci est un mail automatique, Merci de ne pas y répondre.</center>
</div> </body> </html> ';
mail($mail, "Confirmation de votre compte", $message, $header);
$erreur = "<font color='green'>Votre compte a bien été créé , veuillez l'activer depuis votre boite mail</font>";
} else { $erreur = "Vos 2 mots de passe ne correspondent pas"; } } else { $erreur = "Cette adresse mail est déjà utilisée"; } } else { $erreur = "Votre adresse mail n'est pas valide"; } } else { $erreur = "Vos adresses mail ne correspondent pas"; } } else { $erreur = "Votre pseudo ne doit pas dépasser 255 caractères"; } } else { $erreur = "Tous les champs doivent être complétés"; } } ?>
<center><div class="titre"><h1>Activation du compte</h1></div></center></br></br> <?php $bdd = new PDO('mysql:host=localhost;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)); echo '<font color="red">Félicitation , votre compte est activé </font> <a href="http://epsis.pe.hu/login.php" rel="nofollow" target="_blank">connectez vous</a>';
}else{ echo "<font color='green'>Votre compte est déjà activé </font><a href='http://epsis.pe.hu/login.php' rel="nofollow" target="_blank">connectez vous</a>";
}
} else { echo "<font color='red'>Ce compte n'existe pas </font><a href='http://epsis.pe.hu/register.php' rel="nofollow" target="_blank">inscrivez vous</a>";
Ta confirmation consiste à mettre le champ 'confirme' de la table 'membres' à 1.
Pourquoi ne vérifies-tu pas cette valeur lors de la connexion ? Il suffit de rajouter 'AND confirme=1' à ta requête.
TheDialge-123
Messages postés239Date d'inscriptionsamedi 18 février 2012StatutMembreDernière intervention 3 août 20165 3 août 2016 à 13:27
rah merci tu me sauve la vie j'avais presque tout essayé sauf ça , je te remercie beaucoup
3 août 2016 à 13:27