Probléme Verification Compte
- Accueil
- Forum
- Discussions
- Actualité
- Probléme Verification Compte
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 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 Le 12 avril 2021 à 21:29 (Édité le 1 janvier 1970 à 01:00)
StudioUna Le 12 avril 2021 à 21:50 (Édité le 1 janvier 1970 à 01:00)
ps : Le confirme et bien en valeur par defaut à 0
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 Le 16 avril 2021 à 01:37 (Édité le 1 janvier 1970 à 01:00)
Il n'y à pas moyen de te contacter discord? ça serait mieux pour parler rapidement :p
Donuts Le 16 avril 2021 à 10:14 (Édité le 1 janvier 1970 à 01:00)
je n'ai plus de compte discord, et sur discord y'a pa de mise en page pour copier du code. ;)
StudioUna Le 16 avril 2021 à 11:21 (Édité le 1 janvier 1970 à 01:00)
Ah mince , car cela ne fonctionne toujours pas :p