Copie expéditeur dans formulaire contact php
Résolu
la chicane
Messages postés
156
Date d'inscription
Statut
Membre
Dernière intervention
-
la chicane Messages postés 156 Date d'inscription Statut Membre Dernière intervention -
la chicane Messages postés 156 Date d'inscription Statut Membre Dernière intervention -
Bonjour la compagnie,
J'ai créé un formulaire htm et le code php qui va avec.
Tout marche super... sauf la copie à l'expéditeur qui ne fonctionne pas alors qu'il me semble avoir écrit les choses correctement... je ne comprends pas ce qui manque.
Je soumets donc le code à votre haute expérience...
voici mon formulaire htm :
et mon code php à côté :
J'ai créé un formulaire htm et le code php qui va avec.
Tout marche super... sauf la copie à l'expéditeur qui ne fonctionne pas alors qu'il me semble avoir écrit les choses correctement... je ne comprends pas ce qui manque.
Je soumets donc le code à votre haute expérience...
voici mon formulaire htm :
<form action="traitement_formulaire.php" method="post" name="contact" id="contact"> <p align="center" class="Style15" style="margin-top:5px;">Merci de remplir <strong>tous les champs</strong> du formulaire et de le renvoyer pour le <span class="Style16">31 mai</span></span>.<br /> <br /> En fonction du nombre de participants, je vous recontacterai par mail courant juin<br /> pour vous préciser la nature de votre participation (entrée ou dessert + grillades). </p> <table width="85%" align="center" cellpadding="5" cellspacing="4"> <tr> <td width="289"><span class="Style23">Famille (nom prénom) </span></td> <td width="317"> <div align="left"> <input name="nom" type="text" id="nom" style="background-color:#CCCCCC" tabindex="1" size="40" maxlength="40"/> </div></td> </tr> <tr> <td><span class="Style23">Nombre d'adultes </span></td> <td> <div align="left"> <input name="adultes" type="text" id="adultes" style="background-color:#CCCCCC" tabindex="2" size="40"/> </div></td> </tr> <tr> <td><span class="Style23">Nombre d'enfants </span></td> <td> <div align="left"> <input name="enfants" type="text" id="enfants" style="background-color:#CCCCCC" tabindex="3" size="40"/> </div></td> </tr> <tr> <td><span class="Style23">Arrivée le samedi soir <br /> (</span><span class="Style24">précisez si vous arrivez pour diner</span><span class="Style23">)</span></td> <td><div align="left"> <input name="arrivee" type="text" id="arrivee" style="background-color:#CCCCCC" tabindex="4" size="40"/> </div></td> </tr> <tr> <td><span class="Style23">Adresse mail </span></td> <td> <div align="left"> <input name="email" type="text" id="email" style="background-color:#CCCCCC" tabindex="4" size="40"/> </div></td> </tr> <tr> <td valign="top"><span class="Style23">Message</span></td> <td> <div align="left"> <textarea name="message" cols="50" rows="9" id="message" style="background-color:#CCCCCC" tabindex="6"></textarea> </div></td> </tr> <tr> <td> </td> <td><input type="submit" name="envoi" value="Envoyer" /></td></tr> </table> </form>
et mon code php à côté :
<?php // destinataire du mail $destinataire = 'nom.prenom@operateur.fr'; // copie à l'émetteur $copie = 'oui'; // 'oui' ou 'non' // Messages de confirmation du mail $message_envoye = 'ar_message.htm'; $message_non_envoye = 'nok_message.htm'; $message_erreur_formulaire = "Attention, pour continuer, vous devez <a href=\"contact.html\">envoyer le formulaire</a>."; $message_formulaire_invalide = 'nok_champs_form.htm'; // test d'envoi du formulaire if (!isset($_POST['envoi'])) { // si echec echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; } else { /* * nettoyer et enregistrer le message */ function Rec($text) { $text = trim($text); // supprime les espaces blancs en début et en fin de texte if (1 === get_magic_quotes_gpc()) { $stripslashes = create_function('$txt', 'return stripslashes($txt);'); } else { $stripslashes = create_function('$txt', 'return $txt;'); } // magic quotes ? $text = $stripslashes($text); $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well $text = nl2br($text); return $text; }; /* * vérif email */ function IsEmail($email) { $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$"; return (eregi($pattern,$email)) ? true : false; }; // formulaire envoyé, on récupère tous les champs. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $adultes = (isset($_POST['adultes'])) ? Rec($_POST['adultes']) : ''; $enfants = (isset($_POST['enfants'])) ? Rec($_POST['enfants']) : ''; $arrivee = (isset($_POST['arrivee'])) ? Rec($_POST['arrivee']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : 'Reponse invitation 50 ans'; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; // vérification des variables et de l'email ... $email = (IsEmail($email)) ? $email : ''; if (($nom != '') && ($adultes != '') && ($enfants != '') && ($arrivee != '') && ($email != '')&& ($message != '')) { // envoi du mail après constitution $headers = "Content-Type: text/html; charset=\"iso-8859-1\"\n".'From: '.$nom.' <'.$email.'>'; $message = str_replace('\r\n','<br>',$message); $objet = str_replace("'","'",$objet); // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; //constitution du corps du mail $message = 'Nom : '.$nom."<br>".'Adultes : '.$adultes."<br>".'Enfants : '.$enfants."<br>".'Arrivee : '.$arrivee."<br>".'email : '.$email."<br>".'Message : '.$message; // Envoi du mail if (mail($cible, $objet, $message, $headers)) { header('Location: ar_message.htm'); } else { header('Location: nok_message.htm'); }; } else { // une des 3 variables (ou plus) est vide ... header ('Location: nok_champs_form.htm'); }; }; // fin du if (!isset($_POST['envoi'])) ?> Merci de votre aide.
A voir également:
- Copie expéditeur dans formulaire contact php
- Whatsapp formulaire opposition - Guide
- Copie cachée - Guide
- Formulaire de réclamation facebook - Guide
- Super copie - Télécharger - Gestion de fichiers
- Copie écran samsung - Guide
5 réponses
bonjour,
il te manque le champs "copie" celui qui a la valeur "oui ou non" -> formulaire
il te manque le traitement de $copie -> partie php
J'ai fais des changements, fais un test et dis nous le résultat
bonne journée
formulaire:
traitement (fichier / partie .php)
il te manque le champs "copie" celui qui a la valeur "oui ou non" -> formulaire
il te manque le traitement de $copie -> partie php
J'ai fais des changements, fais un test et dis nous le résultat
bonne journée
formulaire:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Document sans nom</title> </head> <body> <form action="traitement_formulaire.php" method="post" name="contact" id="contact"> <p align="center" class="Style15" style="margin-top:5px;">Merci de remplir <strong>tous les champs</strong> du formulaire et de le renvoyer pour le <span class="Style16">31 mai</span></span>.<br /> <br /> En fonction du nombre de participants, je vous recontacterai par mail courant juin<br /> pour vous préciser la nature de votre participation (entrée ou dessert + grillades). </p> <table width="85%" align="center" cellpadding="5" cellspacing="4"> <tr> <td width="289"><span class="Style23">Famille (nom prénom) </span></td> <td width="317"> <div align="left"> <input name="nom" type="text" id="nom" style="background-color:#CCCCCC" tabindex="1" size="40" maxlength="40"/> </div></td> </tr> <tr> <td><span class="Style23">Nombre d'adultes </span></td> <td> <div align="left"> <input name="adultes" type="text" id="adultes" style="background-color:#CCCCCC" tabindex="2" size="40"/> </div></td> </tr> <tr> <td><span class="Style23">Nombre d'enfants </span></td> <td> <div align="left"> <input name="enfants" type="text" id="enfants" style="background-color:#CCCCCC" tabindex="3" size="40"/> </div></td> </tr> <tr> <td><span class="Style23">Arrivée le samedi soir <br /> (</span><span class="Style24">précisez si vous arrivez pour diner</span><span class="Style23">)</span></td> <td><div align="left"> <input name="arrivee" type="text" id="arrivee" style="background-color:#CCCCCC" tabindex="4" size="40"/> </div></td> </tr> <tr> <td><span class="Style23">Adresse mail </span></td> <td> <div align="left"> <input name="email" type="text" id="email" style="background-color:#CCCCCC" tabindex="4" size="40"/> </div></td> </tr> <td><span class="Style23">Recevoir une copie de cet e-mail ?</span></td> <td> <div align="left"> <table width="200"> <tr> <td><label> <input name="copie" type="radio" id="copie_0" value="oui" checked="checked" /> Oui</label></td> </tr> <tr> <td><label> <input type="radio" name="copie" value="non" id="copie_1" /> Non</label></td> </tr> </table> </div></td> </tr> <tr> <td valign="top"><span class="Style23">Message</span></td> <td> <div align="left"> <textarea name="message" cols="50" rows="9" id="message" style="background-color:#CCCCCC" tabindex="6"></textarea> </div></td> </tr> <tr> <td> </td> <td><input type="submit" name="envoi" value="Envoyer" /></td></tr> </table> </form> </body> </html>
traitement (fichier / partie .php)
<?php // destinataire du mail $destinataire = 'nom.prenom@operateur.fr'; // copie à l'émetteur $copie = 'oui'; // 'oui' ou 'non' // Messages de confirmation du mail $message_envoye = 'ar_message.htm'; $message_non_envoye = 'nok_message.htm'; $message_erreur_formulaire = "Attention, pour continuer, vous devez <a href=\"contact.html\">envoyer le formulaire</a>."; $message_formulaire_invalide = 'nok_champs_form.htm'; // test d'envoi du formulaire if (!isset($_POST['envoi'])) { // si echec echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; } else { /* * nettoyer et enregistrer le message */ function Rec($text) { $text = trim($text); // supprime les espaces blancs en début et en fin de texte if (1 === get_magic_quotes_gpc()) { $stripslashes = create_function('$txt', 'return stripslashes($txt);'); } else { $stripslashes = create_function('$txt', 'return $txt;'); } // magic quotes ? $text = $stripslashes($text); $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well $text = nl2br($text); return $text; }; /* * vérif email */ function IsEmail($email) { $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$"; return (eregi($pattern,$email)) ? true : false; }; // formulaire envoyé, on récupère tous les champs. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $adultes = (isset($_POST['adultes'])) ? Rec($_POST['adultes']) : ''; $enfants = (isset($_POST['enfants'])) ? Rec($_POST['enfants']) : ''; $arrivee = (isset($_POST['arrivee'])) ? Rec($_POST['arrivee']) : ''; $email = (isset($_POST['email'])) ? Rec($_POST['email']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : 'Reponse invitation 50 ans'; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; $copie = (isset($_POST['copie'])) ? Rec($_POST['copie']) : ''; // vérification des variables et de l'email ... $email = (IsEmail($email)) ? $email : ''; if (($nom != '') && ($adultes != '') && ($enfants != '') && ($arrivee != '') && ($email != '')&& ($message != '')) { // envoi du mail après constitution $headers = "Content-Type: text/html; charset=\"iso-8859-1\"\n".'From: '.$nom.' <'.$email.'>'; $message = str_replace('\r\n','<br>',$message); $objet = str_replace("'","'",$objet); // envoyer une copie au visiteur ? if ($copie == 'oui') { $cible = $destinataire.','.$email; } else { $cible = $destinataire; }; //constitution du corps du mail $message = 'Nom : '.$nom."<br>".'Adultes : '.$adultes."<br>".'Enfants : '.$enfants."<br>".'Arrivee : '.$arrivee."<br>".'email : '.$email."<br>".'Message : '.$message; // Envoi du mail if (mail($cible, $objet, $message, $headers)) { header('Location: ar_message.htm'); } else { header('Location: nok_message.htm'); }; } else { // une des 3 variables (ou plus) est vide ... header ('Location: nok_champs_form.htm'); }; }; // fin du if (!isset($_POST['envoi'])) ?>
Il faut utiliser la copie carbone (Cc) dans les headers.
$headers = 'Content-Type: text/html; charset="iso-8859-1"'."\n"; $headers .= 'From: '.$nom.' <'.$email.'>'."\n"; $headers .= 'Cc: email@expediteur.com'."\n";
@ Nico : merci Nico pour cette correction de code, mais malheureusement, cela ne change rien...
@ avion-f16 : j'ai donc essayé ta solution aussi, mais cela ne change rien non plus...
Conclusion : je viens de passer 3 bonnes heures à retourner le pb dans tous les sens... "mais où donc que c'est que ça pêche" ????
Dernière question : n'y a-t-il pas un moyen simple d'envoyer automatiquement une copie de son mail à l'expéditeur, sans lui demander son avis ?
merci d'avance...
@ avion-f16 : j'ai donc essayé ta solution aussi, mais cela ne change rien non plus...
Conclusion : je viens de passer 3 bonnes heures à retourner le pb dans tous les sens... "mais où donc que c'est que ça pêche" ????
Dernière question : n'y a-t-il pas un moyen simple d'envoyer automatiquement une copie de son mail à l'expéditeur, sans lui demander son avis ?
merci d'avance...
Me revoilà...
j'ai poursuivis mes tests et j'ai remarqué une chose :
si je me mets à la place de l'expéditeur, celui qui rempli le formulaire : je reçois bien une copie du mail envoyé via le formulaire de contact si mon adresse est en "orange.fr", mais pas lorsque je saisis une adresse mail d'expéditeur en "laposte.net"
bizarre non ??
une idée ??
ps : j'en déduis que vos corrections étaient bonnes messieurs !!!!
mais comment puis-je faire pour qu'aucun "domaine" (type "laposte.net") ne soit exclus... ???
j'ai poursuivis mes tests et j'ai remarqué une chose :
si je me mets à la place de l'expéditeur, celui qui rempli le formulaire : je reçois bien une copie du mail envoyé via le formulaire de contact si mon adresse est en "orange.fr", mais pas lorsque je saisis une adresse mail d'expéditeur en "laposte.net"
bizarre non ??
une idée ??
ps : j'en déduis que vos corrections étaient bonnes messieurs !!!!
mais comment puis-je faire pour qu'aucun "domaine" (type "laposte.net") ne soit exclus... ???
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
il est possible que votre hébergeur soit blacklisté chez certain fournisseur mail.
Bonne journée
il est possible que votre hébergeur soit blacklisté chez certain fournisseur mail.
Bonne journée