Confirmation par email
Résolu
Bonjour, j'ai un GROOOOOOOOOOS problème et là pour le coup je dois être "maudit" ^^, en faite quand je met le code + la structure (donc confirmkey et confirme qui font référence a la confirmation de la personne), et que la personne s'inscrit, le mail s'envoie MAIS le compte ne se créé pas. Je vous montre mon code :
Voilà merci d'avance !
if ($mdp == $mdp2) {
$longueurKey = 15;
$key = "";
for ($i=1; $i<$longueurKey; $i++) {
$key .= mt_rand(0,9);
}
$insertmbr = $bdd->prepare("INSERT INTO membres (pseudo, email, mdp, confirmkey) VALUES (?, ?, ?, ?)");
$insertmbr->execute(array($pseudo, $email, $mdp, $key));
header("Location: connexion.php");
$header="MIME-Version: 1.0\r\n";
$header.='From:"Nom.fr"<****@gmail.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/physique/confirmation.php?pseudo='.urlencode($pseudo).'$key='.$key.'" rel="nofollow" target="_blank" </div>
</body>
</html>
';
mail($email, "Confirmation de compte", $message, $header);
}
Voilà merci d'avance !
1 réponse
-
Salut,
Si le problème concerne l'inscription en bdd, commence par activer l'affichage des erreurs PDO si ce n'est pas fait : https://www.php.net/manual/fr/pdo.error-handling.php
Du coup, as tu une erreur sql ?
Bonne journée,-
-
ModérateurBonjour,
Comme le conseil Pitet, merci d'activer l'affichage des erreurs PDO
Je t'invite à suivre ce qui est marqué ici : https://forums.commentcamarche.net/forum/affich-37584941-php-pdo-gerer-les-erreurs
Il te faut bien sûr désactiver la redirection que tu as mis en place :header("Location: connexion.php");
qui, d'ailleurs... devrait être mis après l'envoie du mail non ?? -
-
Modérateur@ChifFlamTu as donc dans ta Table un champ 'confirme' qui par défaut n'a pas de valeur par défaut... et comme tu ne le mets pas dans ta requête...il ne sait pas quoi y mettre d'où l'erreur.
Donc le mieux serait d'éditer ta table et de définir une valeur par défaut à ce champ (vide par exemple ou 0 si c'est un numérique....) -
-