Se connecter / S'enregistrer
Votre question

Problème envoi de formulaire par mail

Tags :
  • Programmation
Dernière réponse : dans Programmation
2 Mai 2010 12:18:12

Bonjour à tous, voila je suis actuellement sur la conception d'un formulaire et je voudrais le recevoir par, j'ai tout essayé et la je vois pas du tout ou je bloque..
Si quelqu'un peut m'aider ce serait vraiment sympa!

voici le code du formulaire (sur page html)

  1. <a name="formulaire_haut"></a><div class="formulaire_general">
  2. <form action="traitement-formulaire.php" method="post" enctype="application/x-www-form-urlencoded" name="formulaire_contact" id="formulaire_contact">
  3. <table class="formulaire_table" cellspacing="0" cellpadding="0" border="0">
  4. <tr><td colspan="2"><input type="hidden" name="destinataire" id="formulaire_contact_destinataire" value="Contact" /></td></tr>
  5. <tr>
  6. <td class="formulaire_nom_champ">Nom </td>
  7. <td class="formulaire_td_champ">
  8. <input type="text" class="formulaire_champ" name="nom" id="formulaire_contact_nom" value="" style="" />
  9. <span class="formulaire_champ_suffixe"></span>
  10. </td>
  11. </tr>
  12. <tr><td colspan="2" class="formulaire_cell_espacement"></td></tr>
  13. <tr>
  14. <td class="formulaire_nom_champ">Prénom </td>
  15. <td class="formulaire_td_champ">
  16. <input type="text" class="formulaire_champ" name="prenom" id="formulaire_contact_prenom" value="" style="" />
  17. <span class="formulaire_champ_suffixe"></span>
  18. </td>
  19. </tr>
  20. <tr><td colspan="2" class="formulaire_cell_espacement"></td></tr>
  21. <tr>
  22. <td class="formulaire_nom_champ">Email </td>
  23. <td class="formulaire_td_champ">
  24. <input type="text" class="formulaire_champ" name="email" id="formulaire_contact_email" value="" style="" />
  25. <span class="formulaire_champ_suffixe"></span>
  26. </td>
  27. </tr>
  28. <tr><td colspan="2" class="formulaire_cell_espacement"></td></tr>
  29. <tr>
  30. <td class="formulaire_nom_champ">Téléphone </td>
  31. <td class="formulaire_td_champ">
  32. <input type="text" class="formulaire_champ" name="tel" id="formulaire_contact_tel" value="" style="" />
  33. <span class="formulaire_champ_suffixe"></span>
  34. </td>
  35. </tr>
  36. <tr><td colspan="2" class="formulaire_cell_espacement"></td></tr>
  37. <tr>
  38. <td class="formulaire_nom_champ">Objet </td>
  39. <td class="formulaire_td_champ">
  40. <input type="text" class="formulaire_champ" name="objet" id="formulaire_contact_objet" value="" style="" />
  41. <span class="formulaire_champ_suffixe"></span>
  42. </td>
  43. </tr>
  44. <tr><td colspan="2" class="formulaire_cell_espacement"></td></tr>
  45. <tr>
  46. <td class="formulaire_nom_champ">Message </td>
  47. <td class="formulaire_td_champ">
  48. <textarea class="formulaire_champ" cols="" rows="5" name="message" id="formulaire_contact_message" style=""></textarea>
  49. </td>
  50. </tr>
  51. <tr><td colspan="2" class="formulaire_cell_espacement"></td></tr>
  52. <tr>
  53. <td colspan="2" class="formulaire_td_envoyer">
  54. <input type="submit" class="formulaire_envoyer" name="formulaire_contact_envoyer" value="Envoyer" />
  55. </td>
  56. </tr>
  57. <tr><td colspan="2" class="formulaire_cell_espacement"></td></tr>
  58. </table>
  59. <p class="formulaire_note">Tous les champs sont obligatoires.</p>
  60. <input name="formu_envoye_contact" type="hidden" value="formu_envoye" />
  61. </form>


et voici celui de la page php pour le traitement du formulaire :

  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  5. <title>Document sans titre</title>
  6. </head>
  7.  
  8. <body>
  9. <?php
  10.  
  11. /*
  12. ********************************************************************************************
  13. CONFIGURATION
  14. ********************************************************************************************
  15. */
  16. // destinataire est votre adresse mail. Pour envoyer ? plusieurs ? la fois, s?parez-les par une virgule
  17. $destinataire = 'mon adresse mail';
  18.  
  19. // copie ? (envoie une copie au visiteur)
  20. $copie = 'non'; // 'oui' ou 'non'
  21.  
  22. // Messages de confirmation du mail
  23. $message_envoye = "Votre message nous est bien parvenu !";
  24. $message_non_envoye = "L'envoi du mail a ?chou?, veuillez r?essayer SVP.";
  25.  
  26. // Messages d'erreur du formulaire
  27. $message_erreur_formulaire = "Vous devez d'abord <a href=\"contact.html\">envoyer le formulaire</a>.";
  28. $message_formulaire_invalide = "V?rifiez que tous les champs soient bien remplis et que l'email soit sans erreur.";
  29.  
  30. /*
  31. ********************************************************************************************
  32. FIN DE LA CONFIGURATION
  33. ********************************************************************************************
  34. */
  35.  
  36. // on teste si le formulaire a ?t? soumis
  37. if (!isset($_POST['envoi']))
  38. {
  39. // formulaire non envoy?
  40. echo '<p>'.$message_erreur_formulaire.'</p>'."\n";
  41. }
  42. else
  43. {
  44. /*
  45. * cette fonction sert ? nettoyer et enregistrer un texte
  46. */
  47. function Rec($text)
  48. {
  49. $text = trim($text); // delete white spaces after & before text
  50. if (1 === get_magic_quotes_gpc())
  51. {
  52. $stripslashes = create_function('$txt', 'return stripslashes($txt);');
  53. }
  54. else
  55. {
  56. $stripslashes = create_function('$txt', 'return $txt;');
  57. }
  58.  
  59. // magic quotes ?
  60. $text = $stripslashes($text);
  61. $text = htmlspecialchars($text, ENT_QUOTES); // converts to string with " and ' as well
  62. $text = nl2br($text);
  63. return $text;
  64. };
  65.  
  66. /*
  67. * Cette fonction sert ? v?rifier la syntaxe d'un email
  68. */
  69. function IsEmail($email)
  70. {
  71. $pattern = "^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,7}$";
  72. return (eregi($pattern,$email)) ? true : false;
  73. };
  74.  
  75. // formulaire envoy?, on r?cup?re tous les champs.
  76. $nom = (isset($_POST['nom'])) ? Rec($_POST['nom']) : '';
  77. $prenom = (isset($_POST['prenom'])) ? Rec($_POST['prenom']) : '';
  78. $tel = (isset($_POST['tel'])) ? Rec($_POST['tel']) : '';
  79. $email = (isset($_POST['email'])) ? Rec($_POST['email']) : '';
  80. $objet = (isset($_POST['objet'])) ? Rec($_POST['objet']) : '';
  81. $message = (isset($_POST['message'])) ? Rec($_POST['message']) : '';
  82.  
  83. // On va v?rifier les variables et l'email ...
  84. $email = (IsEmail($email)) ? $email : ''; // soit l'email est vide si erron?, soit il vaut l'email entr?
  85.  
  86. if (($nom != '') && ($prenom != '') && ($tel != '') && ($email != '') && ($objet != '') && ($message != ''))
  87. {
  88. // les 6 variables sont remplies, on g?n?re puis envoie le mail
  89. $headers = 'From: '.$nom.' <'.$email.'>' . "\r\n";
  90.  
  91. // envoyer une copie au visiteur ?
  92. if ($copie == 'non')
  93. {
  94. $cible = $destinataire.','.$email;
  95. }
  96. else
  97. {
  98. $cible = $destinataire;
  99. };
  100.  
  101. // Remplacement de certains caract?res sp?ciaux
  102. $message = str_replace("'","'",$message);
  103. $message = str_replace("’","'",$message);
  104. $message = str_replace(""",'"',$message);
  105. $message = str_replace('<br>','',$message);
  106. $message = str_replace('<br />','',$message);
  107. $message = str_replace("<","<",$message);
  108. $message = str_replace(">",">",$message);
  109. $message = str_replace("&","&",$message);
  110.  
  111. // Envoi du mail
  112. if (mail($cible, $objet, $message, $headers))
  113. {
  114. echo '<p>'.$message_envoye.'</p>'."\n";
  115. }
  116. else
  117. {
  118. echo '<p>'.$message_non_envoye.'</p>'."\n";
  119. };
  120. }
  121. else
  122. {
  123. // une des 3 variables (ou plus) est vide ...
  124. echo '<p>'.$message_formulaire_invalide.' <a href="contact.html">Retour au formulaire</a></p>'."\n";
  125. };
  126. }; // fin du if (!isset($_POST['envoi']))
  127. ?>
  128.  
  129. </body>
  130. </html>



il y a des commentaires car je l'ai récupérer sur un tutoriel
voila merci beaucoup pour votre aide !

Autres pages sur : probleme envoi formulaire mail

a c 232 L Programmation
3 Mai 2010 17:59:41

Salut,

Et ça te dit "Votre message nous est bien parvenu !" ou pas ?
m
0
l
3 Mai 2010 18:02:33

non ce qui me dit c'est de remplir le formulaire alors que ça a été fait. En fait je crois qu'il ne récupère pas les données du formulaire
m
0
l
a c 232 L Programmation
3 Mai 2010 18:49:10

Forcément, il n'y a aucun input ayant pour nom "envoi", et tu vérifies que $_POST['envoi'] soit défini.
m
0
l
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