Se connecter / S'enregistrer
Votre question

Problème code => mail ()

Tags :
  • Webmaster
  • Programmation
Dernière réponse : dans Programmation
11 Mars 2008 20:22:59

Bonjour, je ne comprend pas pourquoi mon code ne marche pas. Quand je clique sur envoyer, ça ne fait rien.
merci d'avance.

  1. <?php
  2. $email_webmaster = "monemail@serv.fr";//// indiquer votre adresse email /////
  3. // === traitement des données du formulaire ============================================================
  4. if (isset($_POST["envoyer"])){
  5. // le formulaire a été soumis
  6. $etat = "erreur";
  7. // Valeur par défaut. Prendra la valeur "ok" s'il n'y a pas d'erreur
  8. // --- mise en forme des champs saisis dans le formulaire lors de sa soumission ---
  9. if (isset($_POST["email_expediteur"])) {
  10. $_POST["email_expediteur"]=trim(stripslashes($_POST["email_expediteur"]));
  11. }
  12. if (isset($_POST["titre"])) {
  13. $_POST["titre"]=trim(stripslashes($_POST["titre"]));
  14. }
  15.  
  16. }
  17. // --- test de la validité des champs saisis ---
  18. if (empty($_POST["email_expediteur"])) {
  19. // il manque l'email de l'expéditeur
  20. $erreur="Saisissez votre adresse email...";
  21. }
  22. elseif (!eregi("^[0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,3}$",$_POST["email_expediteur"])){
  23. // l'adresse e-mail n'est pas valide
  24. $erreur="Votre adresse e-mail n'est pas valide...";
  25. }
  26.  
  27. else {
  28. // --- tous les champs sont correctement remplis: on pourra envoyer le mail ---
  29. $etat="ok";
  30.  
  31. // --- le formulaire n'a pas été soumis ---
  32. $etat="attente";
  33. }
  34. // === fin de traitement des données du formulaire =======================================================
  35. ?>
  36. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  37. "<a href="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" rel="nofollow" target="_blank">http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd</a>">
  38. <html xml:lang="fr" lang="fr" xmlns="<a href="http://www.w3.org/1999/xhtml" rel="nofollow" target="_blank">http://www.w3.org/1999/xhtml</a>">
  39. <head>
  40. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  41. <title>Formulaire de contact</title>
  42. </head>
  43. <body>
  44. <div align="center">
  45. <h1> </h1>
  46. <h1> </h1>
  47. <h1> </h1>
  48. <?php
  49. if ($etat!="ok"){// le formulaire n'a pas été soumis, ou soumis avec une erreur
  50. if ($etat=="erreur"){
  51. //le formulaire a été soumis avec une erreur
  52. echo "<p><strong>".$erreur."</strong></p>\n";
  53. // afficher le message d'erreur
  54. }
  55. ?>
  56. <form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>">
  57. <h2>Contacter le webmaster (le nom de votre site)</h2><!-- mettre le nom de votre site ou autre -->
  58. <blockquote>
  59. <p>
  60. <label for="email_expediteur"> Votre adresse e-mail (obligatoire):</label>
  61. <br />
  62. <input name="email_expediteur" type="text" class="minuscule" id="email_expediteur" value="<?php
  63. if (!empty($_POST["email_expediteur"])) {
  64. // l'adresse email de l'expéditeur a été saisie: la réafficher
  65. echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
  66. }
  67. ?>" size="60" />
  68. </p>
  69. <p>
  70. <label for="titre">Titre de message (facultatif):</label>
  71. <br />
  72. <input type="text" size="100" name="titre" id="titre" value="<?php
  73. if (!empty($_POST["titre"])) {
  74. // le titre du message a été saisi: le réafficher
  75. echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
  76. }
  77. ?>" />
  78. </p>
  79. <p>
  80. <label for="message"></label>
  81. <br />
  82. </p>
  83. </blockquote>
  84. <div align="center">
  85. <p><input type="submit" name="envoyer" value="Envoyer" />
  86. </p></div>
  87. </form>
  88. <?php
  89. }
  90. else {
  91. // le formulaire a été soumis sans erreur, on envoie le mail
  92. /* sécurisation maximum du formulaire */
  93. function saut_ligne1($_SL1) /* première fonction pour remplacer les sauts de ligne du textarea par balise propre slt */
  94. {
  95. $patternssl1[0] = '/\n/';
  96. $replacementstsl1[0] = "<sautlignemessage>";
  97. return preg_replace($patternssl1,$replacementstsl1,$_SL1);
  98. }
  99. function saut_ligne2($_SL2) /* deuxième fonction pour remplacer les balises propre slt en slt standard */
  100. {
  101. $patternssl2[0] = '/<sautlignemessage>/';
  102. $replacementstsl2[0] = "\n";
  103. return preg_replace($patternssl2,$replacementstsl2,$_SL2);
  104. }
  105. function PAMTI($_stringt) /* troisième fonction éviter les injection autre destinataire dans le message */
  106. {
  107. $patternst[0] = '/BCC:/i';
  108. $patternst[1] = '/CC:/i';
  109. $patternst[2] = '/bcc/i';
  110. $patternst[3] = '/cc/i';
  111. $replacementst[0] = 'erreur';
  112. $replacementst[1] = 'erreur';
  113. $replacementst[2] = 'erreur';
  114. $replacementst[3] = 'erreur';
  115. return preg_replace($patternst,$replacementst,$_stringt);
  116. }
  117. function PAMHI($_string) /* quatrième fonction éviter les injections autre destinataire dans les autres champ du message */
  118. {
  119. $patterns[1] = '/BCC:/i';
  120. $patterns[2] = '/cc:/i';
  121. $patterns[3] = '/bcc/i';
  122. $patterns[4] = '/cc/i';
  123. $patterns[5] = '/,/';
  124. $patterns[6] = '/To/i';
  125. $patterns[7] = '`[\x00-\x1F"]`';
  126. $replacements[1] = 'erreur';
  127. $replacements[2] = 'erreur';
  128. $replacements[3] = 'erreur';
  129. $replacements[4] = 'erreur';
  130. $replacements[5] = 'erreur';
  131. $replacements[6] = 'erreur';
  132. $replacements[7] = 'erreur';
  133. return preg_replace($patterns,$replacements,$_string);
  134. }
  135. function PAMETI($_string) /* cinquième fonction éviter les injections autres destinataires dans le header du message */
  136. {
  137. $patterns[1] = '/BCC:/i';
  138. $patterns[2] = '/CC:/i';
  139. $patterns[3] = '/bcc/i';
  140. $patterns[4] = '/cc/i';
  141. $patterns[5] = '/,/';
  142. $patterns[6] = '/To/i';
  143. $replacements[1] = 'erreur';
  144. $replacements[2] = 'erreur';
  145. $replacements[3] = 'erreur';
  146. $replacements[4] = 'erreur';
  147. $replacements[5] = 'erreur';
  148. $replacements[6] = 'erreur';
  149. return preg_replace($patterns,$replacements,$_string);
  150. }
  151. $entete = "From: ".$_POST["email_expediteur"]." <".$_POST["email_expediteur"].">\n";
  152. $entete .= "MIME-Version: 1.0";
  153. $message=saut_ligne1($_POST["message"]);
  154. $message_envoye=saut_ligne2($message);
  155. if (@mail(PAMHI($email_webmaster),PAMHI($_POST["titre"]),PAMTI($message_envoye),PAMETI($entete))){
  156. // mail envoyé
  157. echo "Votre message a été envoyé.<br />\n";
  158. echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Envoyer un autre message...</a>\n";
  159.  
  160. }
  161. else {
  162. // erreur lors de l'envoi du mail
  163. echo "Un problème s'est produit lors de l'envoi du message.\n";
  164. echo "<a href=\"".$_SERVER["PHP_SELF"]."\">Réessayez...</a>\n";
  165. }
  166. }
  167. ?>
  168. <div align="center">
  169. <input type=button value="Fermer le Formulaire" onclick="javascript:self.close();" />
  170. </div></div>
  171. </body>
  172. </html>

Autres pages sur : probleme code mail

12 Mars 2008 14:01:35

help please !!!
14 Mars 2008 18:17:00

Votre hébergeur a t il la fonction e mail ?
Contenus similaires
14 Mars 2008 19:41:09

oui oui bien sûr, je suis chez multimania qui prend en charge PHP...
16 Mars 2008 14:40:00

le php, mais le mail ?
OVH démo tourne avec du php, mais pas de fonction mail ;) 
16 Mars 2008 17:42:46

Ah d'accord je comprend.
Oui, il a la fonction mail puisque j'ai d'autres pages avec mail sur le même serveur.
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS