XHTML/PHP Envoi d'un formulaire par mail

Résolu/Fermé
houba_houbi - 18 déc. 2008 à 16:14
 houba_houbi - 26 janv. 2009 à 11:13
Bonjour,

J'utilisais un script php pour envoyer un formulaire par email qui fonctionne. L'inconvénient c'est qu'il ouvre une page supplémentaire avec le message "votre message a bien été envoyé" avec un lien "retour". Or je souhaiterai que ce message soit affiché directement en dessous du formulaire après validation.

J'ai donc voulu l'adapter sur ma page, mais comme je suis débutante en php....
Le résultat est le message suivant : Warning: mail() [function.mail]: "sendmail_from" not set in php.ini or custom "From:" header missing in C:xxxx on line 78

Ai-je oublié quelque chose?
Merci pour votre aide

Voici mon code :
<form id="form_contact" method="get" action="">
<label>* Votre nom</label>
<input class="input_txt" type="text" name="nom" id="nom" />
<label>* Votre e-mail</label>
<input class="input_txt" type="text" name="email" id="email" />
<label>Votre message</label>
<textarea name="message" id="message"></textarea>
<input name="envoyer" type="submit" class="input_btn_envoyer" value="Envoyer" />
</form>
<?php
$destinataire = "xxxx";
$objet = "Message pour Dividi";
$nom = $_GET['nom'];
$email = $_GET['email'];
$message = $_GET['message'];

$from = "\n\nExpéditeur: ".$email;
$contenu = "\n\nNom : ".$nom;
$contenu .= "\n\nEmail: ".$email;
$contenu .= "\n\nMessage: ".$message;
mail($destinataire,$objet,$contenu,$from);

if(mail($destinataire,$objet,$contenu,$from))
{
echo "<p>Votre message a bien été envoyé !</p>";
echo "<p>Une réponse vous sera donnée sous 48 h</p>";
}
?>
A voir également:

3 réponses

La variable $from est mal renseigné, remplace ta ligne par ça : $from ="From: ".$mail
1
Bonjour,

Comme le serveur mail en local ne fonctionne pas, j'ai mis mon site en production.
J'ai modifié mon code php, mais il ne fonctionne toujours pas :
- je ne reçois pas le message (j'ai pourtant vérifier mon adresse mail, mis une autre, rien à faire !)
- le message de confirmation de l'envoi n'apparait pas en dessous du formulaire

Voici mon code :
<form id="form_contact" method="post" action="">
<label>* Votre nom</label>
<input class="input_txt" type="text" name="nom" id="nom" />

<label>* Votre e-mail</label>
<input class="input_txt" type="text" name="email" id="email" />

<label>Votre message</label>

<textarea name="message" id="message"></textarea>
<div id="form_infos">
<p><span class="txt_form"><br />
* Champs obligatoires</span></p>
<p> </p>
<p>
<input name="envoyer" type="submit" class="input_btn_envoyer" onclick="MM_validateForm('nom','','R','email','','RisEmail');return document.MM_returnValue" value="Envoyer" />
</p>
<p class="txt_form"> </p>
<p><br />
Ces informations sont destinées uniquement à XXX au traitement de votre demande.</p>
<p><br />
</p>
<p class="txt_form">Vous disposez d’un droit d’accès, de modification, de rectification et de suppression des données vous concernant (loi « Informatique et Libertés » du 6 janvier 1978). Pour toute demande, adressez-vous à XXX.</p></div>
</form>
-----
<?php
if(isset($_POST['submit']))
{
$to = "XXX";
$subject = "Message pour XXX";
$nom = $_POST['nom'];
$email = $_POST['email'];
$message = $_POST['message'];
//Génération du corps du mail. Ne pas changer le terme "From" : c'est une fonction php pour indiquer l'expéditeur dans l'entete du mail
$body = "From: $nom\n E-Mail: $email\n Message: $message\n";
//envoi du mail
echo "Le message a été envoyé !";
mail($to, $subject, $body);
}
?>


Merci pour votre aide
0
Merci pour vos réponses rapides +++

Alors, le problème venait de la variable "from", je pensais que je pouvais changer le nom ;-)

Bon maintenant c'est mon serveur local qui n'ai pas configuré pour :
Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in C:\.... on line 79
mais je ne sais pas quoi faire...

J'utilise Xampp, alors si quelqu'un sait?
Merci
0
houba_houbi Messages postés 119 Date d'inscription vendredi 23 janvier 2009 Statut Membre Dernière intervention 3 juin 2010 16
23 janv. 2009 à 11:15
Bonjour,

Comme le serveur mail en local ne fonctionne pas, j'ai mis mon site en production.
J'ai modifié mon code php, mais il ne fonctionne toujours pas :
- je ne reçois pas le message (j'ai pourtant vérifier mon adresse mail, mis une autre, rien à faire !)
- le message de confirmation de l'envoi n'apparait pas en dessous du formulaire

Voici mon code :
<form id="form_contact" method="post" action="">
<label>* Votre nom</label>
<input class="input_txt" type="text" name="nom" id="nom" />

<label>* Votre e-mail</label>
<input class="input_txt" type="text" name="email" id="email" />

<label>Votre message</label>

<textarea name="message" id="message"></textarea>
<div id="form_infos">
<p><span class="txt_form"><br />
* Champs obligatoires</span></p>
<p> </p>
<p>
<input name="envoyer" type="submit" class="input_btn_envoyer" onclick="MM_validateForm('nom','','R','email','','RisEmail');return document.MM_returnValue" value="Envoyer" />
</p>
<p class="txt_form"> </p>
<p><br />
Ces informations sont destinées uniquement à XXX au traitement de votre demande.</p>
<p><br />
</p>
<p class="txt_form">Vous disposez d’un droit d’accès, de modification, de rectification et de suppression des données vous concernant (loi « Informatique et Libertés » du 6 janvier 1978). Pour toute demande, adressez-vous à XXX.</p></div>
</form>
-----
<?php
if(isset($_POST['submit']))
{
$to = "XXX";
$subject = "Message pour XXX";
$nom = $_POST['nom'];
$email = $_POST['email'];
$message = $_POST['message'];
//Génération du corps du mail. Ne pas changer le terme "From" : c'est une fonction php pour indiquer l'expéditeur dans l'entete du mail
$body = "From: $nom\n E-Mail: $email\n Message: $message\n";
//envoi du mail
echo "Le message a été envoyé !";
mail($to, $subject, $body);
}
?>


Merci pour votre aide
0