Se connecter avec
S'enregistrer | Connectez-vous

[php] Fonction mail() sous IE8

Dernière réponse : dans Programmation

Bonjour à tous,

Encore un qui vient sur ce forum juste quand il a besoin d'aide... qui ne s'est présenté dans la section dédiée,etc...
Oui, ok, c'est vrai je suis coupable! Enfin n'étant pas habitué à participer à des forums je consulte pourtant souvent le forum Tom's Hardware et je dois dire que ça m'a souvent bien aidé !

Voila le contexte

Je ne suis pas un pro de la programmation web, loin de là, cependant je dois développer une petite page de présentation de l'entreprise pour laquelle je travaille en attendant que l'on réalise une vraie page comme il se doit avec des professionnels de ce domaine.

L'idée étant un petit logo.jpg par-ci, un petit texte de présentation html par-là et un formulaire de prise de contact avec récupération du formulaire par email en php.

Et voila mon soucis

Pour la partie htlm, no souçaïlle, par contre la partie .php de récupération du formulaire et de son envoi par la fonction mail() me pose problème.

Tout a bien fonctionné pendant que je testais régulièrement sous Firefox... la petite pop-up "mail envoyé" s'affichait bien, et je recevais mes formulaire sur mon compte mail...

C'est en testant sous divers navigateurs que ça s'est gaté et en particulier pour Internet Explorer 8.
Systématiquement le mail ne part pas...

Est-ce que vous auriez une idée d'où cela peut venir ?

Navigateurs testés

Firefox v3.5.7 : ok
Opera v10.10 : ok
Safari v4.0 : ok
Google Chrome v4.0 : ok

Internet Explorer v8.0.6001.18702IC : no ok

Code :
  1. <?php
  2. $headers ="From: $email\r\n";
  3. $headers .="Reply-To: $email\n";
  4. $headers .="MIME-Version: 1.0\r\n";
  5. $headers .="Content-Type: text/html\n";
  6. $headers .="Content-Transfer-Encoding: 8bit";
  7. $message ="<html><body>Message de : $nom <br>Societe : $societe<br>Message : $texte.</body></html>";
  8.  
  9. if(mail('me@gmail.com', 'Formulaire Web envoyé', $message, $headers))
  10. {
  11. header('Content-Type: text/html; charset=ISO-8859-1');
  12. echo "<script language=\"javascript\">alert('Le message a bien été envoyé');document.location.href='index2.html'</script>";
  13.  
  14. }
  15. else
  16. {
  17.  
  18. header('Content-Type: text/html; charset=ISO-8859-1');
  19. echo "<script language=\"javascript\">alert('Le message n\'a pas été envoyé');document.location.href='index2.html'</script>";
  20. }
  21. ?>


Dans l'attente d'une réponse,
Regards,

tpixl.

Autres pages sur : php fonction mail ie8

Lassé par la pub ? Créez un compte

Salut marsien,

merci de ta réponse.

Voici un bout du fichier .html contenant le formulaire :

  1. !DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "<a href="http://www.w3.org/TR/html40/strict.dtd" target="_blank">http://www.w3.org/TR/html40/strict.dtd</a>">
  2. <html>
  3. <head>
  4. <title>***.fr - Site en construction</title>
  5. <meta name="description" content="Etude / Développement / Production d'emballages haut de gamme, écrins, classeurs, calendriers, PLV">
  6. <meta name="keywords" content="Boites montéés recouverts, montée recouvertes, étuis, écrins, haut de gamme, luxe, PLV, calendriers, classeurs">
  7. <meta name="copyright" content="2010, ***.fr">
  8. <meta http-equiv="Content-type" content="text/html; charset=ISO-8859-1">
  9. <style type="text/css">
  10.  
  11. [...]
  12.  
  13. <script type="text/javascript" language="Javascript" >
  14. <!--
  15. function verification()
  16. {
  17. if(document.formulaire.societe.value == "") {
  18. alert("Veuillez entrer le nom de votre société");
  19. document.formulaire.societe.focus();
  20. return false;
  21. }
  22. else
  23. if(document.formulaire.nom.value == "") {
  24. alert("Veuillez entrer votre nom");
  25. document.formulaire.nom.focus();
  26. return false;
  27. }
  28. else
  29. if(document.formulaire.email.value == "") {
  30. alert("Veuillez entrer votre adresse electronique");
  31. document.formulaire.email.focus();
  32. return false;
  33. }
  34. else
  35. if(document.formulaire.email.value.indexOf('@') == -1) {
  36. alert("L'adresse email entrée est invalide");
  37. document.formulaire.email.focus();
  38. return false;
  39. }
  40. else
  41. if(document.formulaire.texte.value == "") {
  42. alert("Veuillez entrer le texte de votre message");
  43. document.formulaire.texte.focus();
  44. return false;
  45. }
  46. return true
  47. }
  48. //-->
  49. </script>
  50. </head>
  51. <body>
  52.  
  53. [...]
  54.  
  55. <h2><a name="formulaire"></a>Formulaire de contact</h2>
  56.  
  57. <form name='formulaire' action='mail.php' method='post' onSubmit="return verification()">
  58.  
  59. <br>
  60.  
  61. <table>
  62.  
  63. <tr><td>Société : </td><td><input name='societe' type='text' size='50'></td></tr>
  64.  
  65. <tr><td>Nom : </td><td><input name='nom' type='text' size='50'></td></tr>
  66.  
  67. <tr><td>Email</td><td><input name='email' type='text' size='50'></td></tr>
  68.  
  69. <tr><td valign="top">Votre message : </td><td><textarea name='texte' cols='50' rows='20'></textarea></td></tr>
  70.  
  71. <tr><td><input name='annuler' type='reset' value='Effacer'></td><td>
  72.  
  73. <input name='soumettre' type='submit' value='Envoyer'></td></tr>
  74.  
  75. </table>
  76. </form>
  77. </body>
  78. </html>


J'espère que ça répond à ton post,

tpixl.

@batchy: Outch... oui merci à toi! je croyais l'avoir fait mais j'ai pas relu le code.
En effet, le validateur me donne 16 erreurs mais aucune se trouvant dans le bout de code que je vous ai posté.
Je vais quand même essayer de passer à 0 fautes :) 
Expert Programmation

Le code html semble OK. De plus si IE8 renvoie bien les infos du formulaire, l'erreur ne doit pas venir de là.

Il faut par contre faire attention, les variables globales sont dépréciées, voire supprimées des versions récentes de PHP. A la place de $email, $texte, $societe, etc... tu devrais utiliser la variable dédiée $_POST ; ce qui donnera $_POST['email'], $_POST['teste'], $_POST['societe'], etc...

Compare également ce qui est réellement envoyé par IE8 par rapport à unn autre navigateur (Firefox par exemple) : var_dump($_POST);

Enfin, est-ce que ça marche avec IE7 ou le problème est-il général à tous les IE (récents ; on va faire comme Google et considérer que IE6 et précédent n'existent plsu :o  ) ?

PS : je me rappelle aussi d'un vieux sujet où le problème venait de la désactivation des cookies sous IE. Regarde aussi de ce côté-là.
Lassé par la pub ? Créez un compte