Envoi d'un mail de confirmation

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Envoi d'un mail de confirmation

Re: Envoi d'un mail de confirmation

par moogli » 28 nov. 2013, 22:12

Salut,


Si tu test ce code sous Windows c'est possible que tu es une erreur.

As tu des erreurs dans le log php ?


@+

Envoi d'un mail de confirmation

par Sombwich » 27 nov. 2013, 13:54

Bonjour,

Je suis en train de (tenter de) coder une newsletter pour mon site.

Pour s'inscrire, j'ai installé un formulaire sur une page où l'on entre son adresse mail.
L'action envoi à la page suivante (post.php) où :
* une clef d'activation est générée,
* l'adresse mail est intégrée dans une base de donné
* un mail de confirmation est envoyé à l'adresse entrée par l'utilisateur afin qu'il puisse valider (via un lien).

Voici le code de ma page post :
<?php

$clef = md5(microtime(TRUE)*100000);
$email = $_POST['email'];

try
{
    $bdd = new PDO('mysql:host=localhost;dbname=monsite', 'login', 'password');
}
catch(Exception $e)
{
        die('Erreur : '.$e->getMessage());
}
 
$req = $bdd->prepare('INSERT INTO mailnews (email, clef) VALUES(?, ?)');
$req->execute(array($_POST['email'], $_POST['clef']));

$to = $email;
$subject = 'Newsletter de monsite';
$message = "<p>Bonjour,<br>
Pour confirmer votre inscription &agrave; la newsletter de monsite, merci de cliquer sur le lien ci-dessous ou de le copier/coller dans votre navigateur :<br>
<a>http://monsite.com/news/activation.php?log='.urlencode($email).'&clef='.urlencode($clef).'</a></p>
<br><p>Ceci est un message automatique, merci de ne pas y r&eacute;pondre.</p>";
$headers = "From: \"monsite News\"<[email protected]>"."\r\n".
			"Reply-To: [email protected]"."\r\n".
			"Content-Type: text/html; charset=\"iso-8859-1\"";
if(mail($to,$subject,$message,$headers))
{
	header('Location: index#up');
}
else
{
		echo "Une erreur c'est produite lors de l'inscription de votre adresse, merci de <a href=\"index\">r&eacute;essayer.</a>";
}
?>
J'ai tenté plusieurs modifications du code mais rien n'y fait : à chaque fois que je tente de m'inscrire, je reçois le message d'erreur.

Quelqu'un aurait-il une idée du ou des problèmes empêchant ce code de fonctionner correctement ?
Merci !