Bonjour,
Je viens vous demander conseils car j'ai un formulaire de contact simple qui ne fonctionne pas correctement sous ie. J'ai localisé le problème au niveau du paramètre headers de la fonction mail()
Voici le code de la fonction de traitement du formulaire :
Code :
- <?php
- error_reporting(0);
- if(isset($_POST['nom']) OR isset($_POST['prenom']) OR isset($_POST['question']))
- {
- function valid_email($str)
- {
- return ( ! preg_match("/^([a-z0-9\+_\-]+)(\.[a-z0-9\+_\-]+)*@([a-z0-9\-]+\.)+[a-z]{2,6}$/ix", $str)) ? FALSE : TRUE;
- }
- $erreur ="";
- if ($_POST['nom'] =="" ) $erreur.= 'Veuillez préciser votre nom<br />';
- if ($_POST['prenom'] =="" ) $erreur.= 'Veuillez préciser votre prénom<br />';
- if ($_POST['adresse_email'] =="" ) $erreur.= 'Veuillez préciser votre adresse email<br />';
- if ($_POST['question'] =="" ) $erreur.= 'Vous n\'avez pas rempli le champ message<br />';
- if (valid_email ($_POST['adresse_email']) == FALSE) $erreur .="L'adresse email n'est pas valide<br />";
- if($erreur == "" )
- {
- if ($_POST['objet'] == "commercial" ) $to = 'xxx@xxx.com';
- else $to = 'xxx@xxx.com';
- $headers = 'From: '.$_POST['adresse_email']. "\r\n";
- $headers .='Reply-To: '.$_POST['adresse_email']. "\r\n";
- $headers .='X-Mailer: PHP/' . phpversion();
- $subject = "Formulaire de contact";
- $message="";
- $message = "Prenom : ";
- $message .= htmlspecialchars($_POST['prenom']);
- $message .= "\n";
- $message .= "Nom: ";
- $message .= htmlspecialchars($_POST['nom']);
- $message .= "\n";
- $message .= "Email: ";
- $message .= htmlspecialchars($_POST['adresse_email']);
- $message .= "\n";
- $message .= "Objet : ";
- $message .= htmlspecialchars($_POST['objet']);
- $message .= "\n";
- $message .= "\n";
- $message .= "\n";
- $message .= htmlspecialchars($_POST['question']);
- if(mail($to, $subject, $message,$headers))
- {
- echo '<div style="text-align:center">';
- echo '<div class="messages">';
- echo '<p>Votre message à bien été envoyé. <br>';
- echo 'Vous recevrez très prochainement une réponse de notre part.</p>';
- echo'<p><a href="/index.php">Retourner sur la page d\'accueil</a></p>';
- echo '</div></div>';
- }
- else {
- echo '<div style="text-align:center">';
- echo '<div class="messages">';
- echo'<p>Nous n\'avons pas pu transmettre votre message.</p>';
- echo'<p> Merci d\'essayer à nouveau.</p>';
- echo '</div></div>';
- }
- }
- else {
- echo '<div style="text-align:center">';
- echo '<div class="messages">';
- echo '<p>';
- echo $erreur;
- echo'</p></div></div>';
- }
- }
- ?>
|
En retirant $headers de la fonction mail(), le message est bien envoyé sous ie. Mais j'aimerais comprendre d'où vient l'erreur.
Merci par avance de vos réponses.