Confirmation par email

Résolu
ChifFlam Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -  
ChifFlam Messages postés 58 Date d'inscription   Statut Membre Dernière intervention   -
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 !



1 réponse

Pitet Messages postés 2826 Date d'inscription   Statut Membre Dernière intervention   527
 
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   Statut Membre Dernière intervention   1
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
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   Statut Membre Dernière intervention   1
 
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 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > ChifFlam Messages postés 58 Date d'inscription   Statut Membre Dernière intervention  
 
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   Statut Membre Dernière intervention   1
 
oui et bien justement, le champ est de type INT avec une valeur de 1
0