Envoyer un mail avec un formulaire
Debutant en webmastering
Messages postés
444
Statut
Membre
-
Debutant en webmastering Messages postés 444 Statut Membre -
Debutant en webmastering Messages postés 444 Statut Membre -
Bonjour,
ne connaissant pas cette capacité du php qui est d'envoyer un mail via un formulaire, j'ai suivi un tutoriel :
http://creer-un-site.fr
malheureusement, mon envoi ne se réalise pas :(
si vous aviez 5 petites minutes pour me dire ce qui cloche, je vous en serais vraiment reconnaissant
voici mon Formulaire :
<form action="NousContacter.php" method="POST" >
<tr><td>Nom :</td></tr>
<tr><td><input type="text" name="nom_contact"></td></tr>
<tr></tr>
<tr><td>Prénom :</td></tr>
<tr><td><input type="text" name="prenom_contact"></td></tr>
<tr></tr>
<tr><td>Mail :</td></tr>
<tr><td><input type="text" name="mail_contact"></td></tr>
<tr><td>Tel : </td></tr>
<tr><td><input type="text" name="tel_contact"></td></tr>
<tr><td>Est-ce pour un devis ?<input type="radio" name="devis_contact">Oui <input type="radio" name="devis_contact">Non </td></tr>
<tr></tr>
<tr><td>Demande de renseignement</td></tr>
<tr><td><textarea name="message_contact" rows="8" cols="50"></textarea></td></tr>
<tr></tr>
<tr><td><input type="submit" name="Envoyer" value="Envoyer"></td>
<td><input type="reset" name="Effacer" value="Effacer"></td></tr>
<tr></tr>
</form>
et mon code PHP :
<?php
if(isset($_POST["Envoyer"]))
{ $nom_contact = stripslashes($_POST["nom_contact"]);
$prenom_contact = stripslashes($_POST["prenom_contact"]);
$mail_contact = stripslashes($_POST["mail_contact"]);
$tel_contact = stripslashes($_POST["tel_contact"]);
$devis_contact = stripslashes($_POST["devis_contact"]);
$message_contact = stripslashes($_POST["message_contact"]);
$mon_e_mail = xxx@xxx.fr //e_mail de test
$mon_url = "http://url_de_mon_site.fr"; //non défini car pas encore en ligne
if(empty($nom_contact)){
echo 'Vous avez oublié votre nom. <br/>';
}
elseif(empty($prenom_contact)){
echo 'Vous avez oublié votre prénom.<br/>';
}
elseif(empty($mail_contact)){
echo 'Vous avez oublié de préciser votre adresse mail.<br/>';
}
elseif(empty($tel_contact)){
echo 'Veuillez noter votre numéro de téléphone.<br/>';
if(!preg_match(''[0-9]{10}'',$tel_contact));echo "Ce numéro de téléphone n'est pas valide.<br/>";}
elseif(empty($devis_contact)){
echo 'Veuillez préciser la raison de votre contact.<br/>';
}
else if(empty($message_contact)){
echo 'Veuillez écrire votre message.<br/>';
}
else{
// Envoie du mail
$entete = "From: " . $mail_contact . " <" . $mon_e_mail . ">\n";
$entete= "MIME-Version: 1.0";
<" . $nom_contact . ">/n";"
<" . $prenom_contact . ">/n";"
<" . $tel_contact . ">/n";
$message = . $message_contact .
if (mail($mail_contact,$mon_e_mail,$nom_contact,$prenom_contact,$tel_contact,$message_contact)){
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else {
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
//on ferme le else
}
//on ferme if(isset($_POST["Envoyer"]))
}
?>
--
Cordialement, Debutant en webmastering
ne connaissant pas cette capacité du php qui est d'envoyer un mail via un formulaire, j'ai suivi un tutoriel :
http://creer-un-site.fr
malheureusement, mon envoi ne se réalise pas :(
si vous aviez 5 petites minutes pour me dire ce qui cloche, je vous en serais vraiment reconnaissant
voici mon Formulaire :
<form action="NousContacter.php" method="POST" >
<tr><td>Nom :</td></tr>
<tr><td><input type="text" name="nom_contact"></td></tr>
<tr></tr>
<tr><td>Prénom :</td></tr>
<tr><td><input type="text" name="prenom_contact"></td></tr>
<tr></tr>
<tr><td>Mail :</td></tr>
<tr><td><input type="text" name="mail_contact"></td></tr>
<tr><td>Tel : </td></tr>
<tr><td><input type="text" name="tel_contact"></td></tr>
<tr><td>Est-ce pour un devis ?<input type="radio" name="devis_contact">Oui <input type="radio" name="devis_contact">Non </td></tr>
<tr></tr>
<tr><td>Demande de renseignement</td></tr>
<tr><td><textarea name="message_contact" rows="8" cols="50"></textarea></td></tr>
<tr></tr>
<tr><td><input type="submit" name="Envoyer" value="Envoyer"></td>
<td><input type="reset" name="Effacer" value="Effacer"></td></tr>
<tr></tr>
</form>
et mon code PHP :
<?php
if(isset($_POST["Envoyer"]))
{ $nom_contact = stripslashes($_POST["nom_contact"]);
$prenom_contact = stripslashes($_POST["prenom_contact"]);
$mail_contact = stripslashes($_POST["mail_contact"]);
$tel_contact = stripslashes($_POST["tel_contact"]);
$devis_contact = stripslashes($_POST["devis_contact"]);
$message_contact = stripslashes($_POST["message_contact"]);
$mon_e_mail = xxx@xxx.fr //e_mail de test
$mon_url = "http://url_de_mon_site.fr"; //non défini car pas encore en ligne
if(empty($nom_contact)){
echo 'Vous avez oublié votre nom. <br/>';
}
elseif(empty($prenom_contact)){
echo 'Vous avez oublié votre prénom.<br/>';
}
elseif(empty($mail_contact)){
echo 'Vous avez oublié de préciser votre adresse mail.<br/>';
}
elseif(empty($tel_contact)){
echo 'Veuillez noter votre numéro de téléphone.<br/>';
if(!preg_match(''[0-9]{10}'',$tel_contact));echo "Ce numéro de téléphone n'est pas valide.<br/>";}
elseif(empty($devis_contact)){
echo 'Veuillez préciser la raison de votre contact.<br/>';
}
else if(empty($message_contact)){
echo 'Veuillez écrire votre message.<br/>';
}
else{
// Envoie du mail
$entete = "From: " . $mail_contact . " <" . $mon_e_mail . ">\n";
$entete= "MIME-Version: 1.0";
<" . $nom_contact . ">/n";"
<" . $prenom_contact . ">/n";"
<" . $tel_contact . ">/n";
$message = . $message_contact .
if (mail($mail_contact,$mon_e_mail,$nom_contact,$prenom_contact,$tel_contact,$message_contact)){
echo "Votre message a été envoyé.<br />\n";
echo "<a href=\"" . $mon_url . "\">Retour</a>\n";
}
else {
echo "Un problème s'est produit lors de l'envoi du message.\n";
echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez</a>\n";
}
//on ferme le else
}
//on ferme if(isset($_POST["Envoyer"]))
}
?>
--
Cordialement, Debutant en webmastering
9 réponses
-
Bonjour,
Le code fonctionne très bien à l'origine. Dans votre code, vous avez oublié des guillemets$mon_e_mail = xxx@xxx.fr
ou alors vous en ajoutez la ou il ne faut pas<" . $nom_contact . ">/n";"
ou vous oubliez des points virgules$message = . $message_contact .
vous oubliez de concaténer la variable $entete ...
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire! -
effectivement, les guillements ont été oubliées lorsque j'ai réécrit les xxx@xxx.fr pour ne pas divulguer mon adresse et pour ce qui est du reste voici les modifications :
// Envoie du mail $entete = "From: " . $mail_contact . < . $mon_e_mail . >\n; . $entete . = "MIME-Version: 1.0"; < . $nom_contact . >/n; < . $prenom_contact . >/n; < . $tel_contact . >/n; $message = . $message_contact .;
Cordialement, Debutant en webmastering -
Dans l'entête, c'est l'mail du correspondant par le votre.
$entete = "From: " . $mon_pseudo . " <" . $son_email . ">\n"; $entete .= "MIME-Version: 1.0";
Ensuite, $message est faux.$message = $message_contact ;
Dailleurs cette variable ne sert à rien puisque vous pouvez l'envoyer directement dans la fonction mail() en utilisant directement la variable $message_contact.
Pour finir, au lieu de tenter d'insérer certaines données dans l'entête, insérer les plutôt dans le message :
$message .= " ".$message_contact."\n" ; $message .= "Nom : ".$nom_contact."\n"; $message .= "Nom : ".$prenom_contact."\n"; //etc
Puis dans l'envoie du mailif (@mail($mon_email,$objet,$message,$entete))
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire! -
Ah, c'est vrai que je n'ais pas exposé mes intentions quant à ce formulaire.
En fait j'ai créé un petit site pour une entreprise et ce formulaire aura pour but de les contacter donc
$entete = "From: " . $mail_contact . me semble justifié car la personne donne son mail pour que l'on puisse la recontacter mais le problème (et c'est justement ce que je n'ais pas compris dans le tutoriel c'est à quelle adresse on envoie le tout; je pensais que $entete = "From: " . $mail_contact . < . $mon_e_mail . >\n; renseignait 1èrement le mail de la personne qui écrivait ($mail_contact) et ensuite le destinataire (. $son_email .)
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
$entete = "From: " . $mon_pseudo . " <" . $son_email . ">\n";
$mon_pseudo = pseudo de l'envoyeur.
$son_email = email de la personne qui envoie.
Dans l'envoie :if (@mail($mon_email,$lechamp1,$lechamp2,$entete))
Il faut remplacer $mon_email par $son_email.
Le code ci-dessus correspond à :if (@mail(mail du destinataire,objet du message,message, entête))
Une question stupide engendre une réponse stupide!
Une question mal formulé engendre une réponse aléatoire! -
non justement, c'est là que je n'ais pas dû être assez clair, en 1er lieu, j'ai
$mon_e_mail (qui sera celle de l'entreprise) et c'est justement à cette adresse que je souhaite envoyer (le formulaire sert à envoyer la demande du client à l'entreprise qui elle renverra les informations par simple boîte mail)
désolé de ne pas avoir été clair dès le début :( et j'espère que ça l'est plus maintenant
-
Donc $mon_e_mail vient en premier dans la fonction mail
if (@mail($mon_e_mail,objet du message,message, entête)) -
tu as raison, je crois que je vais oublier cette histoire d'entête et tout mettre directement dans mon message
et encore merci pour ton aide -
juste une question, pourquoi lorsque j'appuie sur Envoyer cela m'affiche mon code php ??
Cordialement, Debutant en webmastering