Confirmation par email

Résolu/Fermé
ChifFlam Messages postés 58 Date d'inscription dimanche 21 août 2016 Statut Membre Dernière intervention 26 avril 2017 - Modifié par ChifFlam le 23/08/2016 à 15:05
ChifFlam Messages postés 58 Date d'inscription dimanche 21 août 2016 Statut Membre Dernière intervention 26 avril 2017 - 23 août 2016 à 15:59
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 :
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 !



A voir également:

1 réponse

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
23 août 2016 à 15:17
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,
1
ChifFlam Messages postés 58 Date d'inscription dimanche 21 août 2016 Statut Membre Dernière intervention 26 avril 2017 1
23 août 2016 à 15:20
ah nan mais j'ai aucune erreur, en faite ça me redirige bien vers la page connexion mais rien ne se met dans la BDD.
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650
23 août 2016 à 15:23
Bonjour,
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 ??
0
ChifFlam Messages postés 58 Date d'inscription dimanche 21 août 2016 Statut Membre Dernière intervention 26 avril 2017 1
23 août 2016 à 15:34
ah oui désolé, et merci.
Ducoup ça me met ça : DOException: SQLSTATE[HY000]: General error: 1364 Field 'confirme' doesn't have a default value
et : Fatal error: Uncaught PDOException: SQLSTATE[HY000]: General error: 1364 Field 'confirme' doesn't have a default value
0
jordane45 Messages postés 38145 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 25 avril 2024 4 650 > ChifFlam Messages postés 58 Date d'inscription dimanche 21 août 2016 Statut Membre Dernière intervention 26 avril 2017
23 août 2016 à 15:39
Tu 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....)
0
ChifFlam Messages postés 58 Date d'inscription dimanche 21 août 2016 Statut Membre Dernière intervention 26 avril 2017 1
23 août 2016 à 15:42
oui et bien justement, le champ est de type INT avec une valeur de 1
0