Formulaire contact: $headers marche pas
Résolu
Emy65
-
jjsteing Messages postés 1670 Date d'inscription Statut Contributeur Dernière intervention -
jjsteing Messages postés 1670 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'ai créé récemment mon site internet: http://www.e-roucolle.fr
Mon problème est lié à la fonction mail de la page contact.
Je reçois le mail avec le sujet, le message complet, par contre, je reçois seulement le nom, le prénom ne s'affiche pas.
Code HTML:
Code PHP:
Merci de votre aide
J'ai créé récemment mon site internet: http://www.e-roucolle.fr
Mon problème est lié à la fonction mail de la page contact.
Je reçois le mail avec le sujet, le message complet, par contre, je reçois seulement le nom, le prénom ne s'affiche pas.
Code HTML:
<form id="contact" method="post" action="formmail.php"> <fieldset id="Coordonnées"> <legend> Contact </legend> <div id="info"> <label>Nom : </label><br/><br/> <label>Prénom : </label><br/><br/> <label>Sujet : </label> </div> <div id="case"> <input type="text" id="nom" name="nom" size="30" /><br /><br /> <input type="text" id="prenom" name="prenom" size="30" /><br /><br /> <input type="text" id="objet" name="objet" size="30" /> </div><br /><br /><br /><br /><br /><br /> <p id="message">Message</p> <div id="message2"><textarea id="message" name="message" rows="10" cols="70"></textarea></div> <p id="envoyer"> <input type="submit" name="envoi" value="Envoyer" /> </p> </fieldset> </form>
Code PHP:
// destinataire est votre adresse mail. Pour envoyer à plusieurs à la fois, séparez-les par une virgule $destinataire = 'emy@gmail.com'; // Messages de confirmation du mail $message_envoye = "Votre message a bien été envoyé !"; $message_non_envoye = "L'envoi du mail a échoué, veuillez réessayer SVP."; // Messages d'erreur du formulaire $message_erreur_formulaire = "Vous devez d'abord envoyer le formulaire."; $message_formulaire_invalide = "Vérifiez que tous les champs soient bien remplis."; // on teste si le formulaire a été soumis if (!isset($_POST['envoi'])) { // formulaire non envoyé echo '<p>'.$message_erreur_formulaire.'</p>'."\n"; } else {// cette fonction sert à nettoyer et enregistrer un texte function Rec($text) { $text = trim($text); // delete white spaces after & before text 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; }; // formulaire envoyé, on récupère tous les champs. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : ''; $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : ''; $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : ''; $message = (isset($_POST['message'])) ? Rec($_POST['message']) : ''; if (($nom != '') && ($prenom != '') && ($objet != '') && ($message != '')) { // les 4 variables sont remplies, on génère puis envoie le mail $headers = 'From: '.$nom.' '.$prenom.'' . "\r\n"; // Remplacement de certains caractères spéciaux $message = str_replace("'","'",$message); $message = str_replace("’","'",$message); $message = str_replace(""",'"',$message); $message = str_replace('<br>','',$message); $message = str_replace('<br />','',$message); $message = str_replace("<","<",$message); $message = str_replace(">",">",$message); $message = str_replace("&","&",$message); // Envoi du mail if (mail($destinataire, $objet, $message, $headers)) { echo '<p>'.$message_envoye.'</p>'."\n"; } else { echo '<p>'.$message_non_envoye.'</p>'."\n"; }; } else { // une des 3 variables (ou plus) est vide ... echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n"; }; }; // fin du if (!isset($_POST['envoi']))
Merci de votre aide
A voir également:
- Formulaire contact: $headers marche pas
- Whatsapp formulaire opposition - Guide
- Formulaire de réclamation facebook - Guide
- Formulaire de reclamation instagram - Guide
- Recuperer contact carte sim - Guide
- Retrouver contact supprimé - Accueil - Android
3 réponses
Bonjour..
Pourquoi dans :
le '\r\n" ??? pas besoin de revenir à la ligne pour le from ??
Sinon, apres la ligne, vérifie que le prénom apparait bien :
echo '<script>alert("'.$headers.'");</script>';
Pourquoi dans :
$headers = 'From: '.$nom.' '.$prenom.'' . "\r\n";
le '\r\n" ??? pas besoin de revenir à la ligne pour le from ??
Sinon, apres la ligne, vérifie que le prénom apparait bien :
echo '<script>alert("'.$headers.'");</script>';
Merci pour ta réponse.
J'ai enlevé le '\r\n" et quand je fais le echo, il écrit bien le nom et le prénom, séparé par un espace.
Donc j'ai essayé en rajoutant un point entre le nom et le prénom:
Merci de ton aide !
J'ai enlevé le '\r\n" et quand je fais le echo, il écrit bien le nom et le prénom, séparé par un espace.
Donc j'ai essayé en rajoutant un point entre le nom et le prénom:
$headers = 'From: '.$nom.'. '.$prenom.'';et ça marche, je reçoit bien l'e-mail avec le nom et le prénom, ils sont séparés par un point.
Merci de ton aide !