formulaire d'envoi par mail, ne s'execute pas[RESOLU]
Posté : 26 avr. 2011, 23:58
Bonjour, je tente de réaliser un formulaire de reservation envoyé par mail, j'ai suivi le tuto http://a-pellegrini.developpez.com/tuto ... mail/#L4.5 .
Mais quoi que je fasse, rien ne se passe , aucun mail n'est envoyé, aucun message d'erreur n'est affiché
(Je tiens à préciser que j'ai tester l'envoi de mail sur mon serveur avec un script tout simple, ça fonctionne)
voilà mon code, merci de me dire ce qui ne va pas
Mais quoi que je fasse, rien ne se passe , aucun mail n'est envoyé, aucun message d'erreur n'est affiché
(Je tiens à préciser que j'ai tester l'envoi de mail sur mon serveur avec un script tout simple, ça fonctionne)
voilà mon code, merci de me dire ce qui ne va pas
<?php
// Si le formulaire est envoyé alors on fait le traitement
if (isset($_POST['Envoyer']))
{
if (!empty($alert))
{
echo '<p style="color:red">'.$alert.'</p>';
}
//
// Récupération des informations
//
// On donne un autre nom au variable pour éviter les problèmes avec Register Global à ON
//et on traite avec htmlentities pour la sécurité et trim pour eviter les champs vides
$formNom = htmlentities(trim($_POST['nom']));
$formMail = htmlentities(trim($_POST['mail']));
$formDebut = htmlentities(trim($_POST['debut']));
$formFin = htmlentities(trim($_POST['fin']));
$formCommentaires = htmlentities(trim($_POST['commentaires']));
// Expression régulière permettant de vérifier si le
// format d'une adresse e-mail est correct
$regex_mail = '/^[-+.\w]{1,64}@[-.\w]{1,64}\.[-.\w]{2,6}$/i';
// Expression régulière permettant de vérifier qu'aucun
//en-tête n'est inséré dans nos champs
$regex_head = '/[\n\r]/';
// Si le formulaire n'est pas posté de notre site on renvoie
// vers la page d'accueil
if($_SERVER['HTTP_REFERER'] != 'http://monsite.toile-libre.org/Reservation/send_email.php')
{
header('Location: http://monsite.toile-libre.org/');
}
//On vérifie que les champs recquis soient bien remplis
elseif(empty($formNom) || empty($formMail) || empty($formDebut) || empty($formFin))
{
$alert = 'Tous les champs recquis doivent être rensignés';
}
// On vérifie que le format de l'e-mail est correct
elseif(!preg_match($regex_mail, $formMail))
{
$alert = 'L\'adresse '.$formMail.' n\'est pas valide';
}
// On verifie qu'il n'y a aucun header dans les champs
elseif (preg_match($regex_head, $formNom)
|| preg_match($regex_head, $formMail)
|| preg_match($regex_head, $formDebut)
|| preg_match($regex_head, $formFin)
|| preg_match($regex_head, $formCommentaires))
{
$alert = 'En-têtes interdites dans les champs du formulaires';
}
// Si aucun problème et aucun cookie créé, on construit le message et on envoie l'e-mail
elseif (!isset ($_COOKIE['sent']))
{
//Destinataire
$to = '[email protected]';
//Construction du message
$msg = 'Bonjour,'."\r\n\r\n";
$msg .= 'Une demande de réservation de l\'appartement été effectuée depuis le site'."\r\n\r\n";
$msg .= 'par '.$formnom.' '.$formMail.' pour la période du '.$formDebut.' au '.$formFin."\r\n";
$msg .= '****************************'."\r\n";
$msg .= $formCommentaire."\r\n";
$msg .= '****************************'."\r\n";
//En-têtes de l'e-mail
$headers = 'From: "le site "<[email protected]>'."\r\n\r\n";
//Envoi de l'e-mail
if (mail($to, $sujet, $msg, $headers))
{
$alert = 'E-mail envoyé avec succès';
// On créé un cookie de courte durée (ici 120 secondes) pour éviter de
// renvoyer un mail en rafraichissant la page
setcookie("sent", "1", time() +120);
//On detruit la variable $_POST
unset($_POST);
}
else
{
$alert = 'Erreur de l\'envoi de l\'e-mail';
}
}
//Cas où le cookie est créé et que la page est rafraichie, on détruit la variable $_POST
else
{
unset($_POST);
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<link type="text/css" rel="stylesheet" href="style.css">
<title>Reservation</title>
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
</head>
<?php
if (!empty($alert))
{
echo '<p style="color:red">'.$alert.'</p>';
}
?>
<body>
<form action="index.php" method="POST">
<fieldset>
<legend><strong>Informations personnelles</strong></legend>
<label>
Nom, Prénom <font size="2" color="#FF0000">(recquis)</font>:
<input type="text" name="nom" />
</label><br /><br />
<label>
Adresse mail <font size="2" color="#0000FF">(optionnel)</font>:
<input type="text" name="mail" />
</label>
</fieldset><br />
<fieldset>
<legend><strong>Dates souhaitées </strong><font size="2" color="#FF0000">(recquis)</font></legend>
<label>
Du :
<input type="text" name="debut" />
</label><br /><br />
<label>
au :
<input type="text" name="fin" />
</label>
</fieldset><br />
<fieldset>
<legend><strong>Commentaires </strong><font size="2" color="#0000FF">(optionnel)</font></legend>
<textarea name="commentaires" cols="20" rows="7"></textarea>
</fieldset><br /><br />
<input type="submit" value="Envoyer" />
<input type="reset" value="Rétablir" />
</form>
</body>
</html>