Veuillez vous connecter ou créer un compte pour suivre ce topic
Ce topic est suivi par: Personne...
Ce topic a été résolu
Auteur Sujet: Problème d'INSERT à l'inscription et de mail qui ne s'envoie pas

Malib

Messages: 79

Voilà alors comme j'ai bien écrire sur se forum je vous propose un de mes nouveaux problème! lol


J'ai donc suivi le tuto de l'espace membre, tout fonctionne. (Déjà la c'est bien Tire la langue)

Ensuite j'ai donc voulu rajouter la validation de mail. Je ne reçois aucun mail, la clef s'écrit bien dans la BDD car j'ai un code de 12 chiffres. Je pense que c'est plus l'envoie du mail qui ne fonctionne pas. En tout cas je peux quand même me connecter.

2em:

Donc sur cette fameuse ligne (dernière de l'inscription qui valide donc si l'inscription est bonne) on à le INSERT INTO. J'ai voulu ajouter 2 champs (point qui aura la valeur de zéro et planète qui est un champ à remplir sur le formulaire.)

Quand je valide l'inscription il y à une erreur que voici:

Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[HY093]: Invalid parameter number: mixed named and positional parameters' in /home/u218634216/public_html/modele/inscription.php:56 Stack trace: #0 /home/u218634216/public_html/modele/inscription.php(56): PDOStatement->execute(Array) #1 /home/u218634216/public_html/vue/page_inscription.php(94): include('/home/u21863421...') #2 {main} thrown in/home/u218634216/public_html/modele/inscription.php on line 56

J'ai donc retiré mon code, je pense que je ne faisais pas correctement l'entrée dans la BDD.

Voici mon code:

insertmembre = $bdd->prepare("INSERT INTO membre (pseudo,mail,mdp, confirmekey,point,planete) VALUES (?, ?, ?, ?,0,?)");/* Enregistre une entrée dans la BDD */
$insertmembre->execute(array($pseudo, $mail, $mdp, $key, $point, $planete));
Voilà mon petit problème ^^
Publicité

TheFlameflo

Messages: 303

Re-salut !

Pour ton premier problème, si tu es en local, c'est fake sendmail qui ne marche pas, du coup, tu peux en essayer d'autres comme maildev, si tu veux.

Pour ton deuxième problème, c'est dans tes valeurs que ça ne marche pas.
En effet, tu as deux choix : soit tu n'insères pas les points sur la page mais que tu mettes le champ point avec 0 comme valeur par défaut dans ta table ou tu mets un '?' dans les values et tu définis le nombre de points dans l'array en dessous.
Mais si tu veux, j'ai adapté ton code pour qu'il marche sans que tu aies à modifier trop de choses.
$insertmembre = $bdd->prepare("INSERT INTO membre (pseudo,mail,mdp, confirmekey,point,planete) VALUES (?, ?, ?, ?,?,?)");/* Enregistre une entrée dans la BDD */
$insertmembre->execute(array($pseudo, $mail, $mdp, $key, 0, $planete));
Bref, il y a d'autres techniques aussi, mais la première et la deuxième devraient marcher !

Bonne chance pour le reste !

Malib

Messages: 79

 Merci,  je vois je vais essayer sa! moi je mettais la valeur à la place des '?' . je te dis sa dès que j'ai effectué les tests!  

Et sinon nop je suis chez Hostinger

Malib

Messages: 79

Pour l'INSERT c'est parfait, donc enfaite je positionnais mal les valeurs! je les mettais pas au bont endroit merci bien. Probleme 1 reglé!^^

TheFlameflo

Messages: 303

Super ! Sourire

Malib

Messages: 79

Si tu as une idée pour le mail je suis preneur Clin d'oeil

Florian

Messages: 73

Le code pour l'envoie du mail ? tu l'as bien mis dans la bonne boucle ? l'email est la bonne ?

Malib

Messages: 79

je poste ici le code, j'ai suivi le tuto: Sur localhost je recevais bien que le mail etait bloqué mais qu'il partait au moins ^^

{
$insertmembre = $bdd->prepare("INSERT INTO membre (pseudo,mail,mdp,confirmekey,point,planete) VALUES (?, ?, ?, ?,?,?)");/* Enregistre une entrée dans la BDD */
$insertmembre->execute(array($pseudo, $mail, $mdp, $key, 0, $planete));
$header="MIME-Version: 1.0\r\n";
$header.='From:"Email de confirmation"<[email protected]>'."\n";
$header.='Content-Type:text/html; charset="uft-8"'."\n";
$header.='Content-Transfer-Encoding: 8bit';
$message='
<html>
<body>
<div align="center">
<a href="http://http://apprendre.esy.es/modele/confirmation_mail.php?pseudo=' .urlencode($pseudo).'&key='.$key.'">Confirmer votre compte</a>
</div>
</body>
</html>
';
mail($mail, "Message bloqué par Gmail mais fonctionnel", $message, $header);
$correct = "Votre compte a bien eté crée.";
}

Florian

Messages: 73

Chez moi ça fonctionne avec ce code
$mail = 'TonEmail';
$pseudo = "test";
$key = "test";
$titre = "Message bloqué par Gmail mais fonctionnel";
$header="From: Confirmation du compte de $pseudo <[email protected]>\nMime-Version:"; 
$header.="1.0\nContent-Type: text/html; charset=uft-8\n";
$message="
<html>
<body>
<div align='center'>
<a href='http://http://apprendre.esy.es/modele/confirmation_mail.php?pseudo=" .urlencode($pseudo)."&key=".$key."'>Confirmer votre compte</a>
</div>
</body>
</html>
";
mail($mail, $titre, $message, $header);
Voila chez moi ça fonctionne en tout cas Clin d'oeil tu as juste a modifier quelque truck, je suis sous Gmail je reçoit mais en spam :x 

Malib

Messages: 79

ok je vais testé!

Malib

Messages: 79

Alors sa fonctionne je reçois le mail dans les spam mais sa c'est rien par contre même si je valide pas je peux quand même me connecter. Je ne sais plus si dans le tuto c'est fait ou si il faut le faire je vais jeter un oeil.

merci en tout cas!


Veuillez vous connecter ou créer un compte pour poster une réponse