Se connecter / S'enregistrer
Votre question

Renvoyé tous les champs du formulaire au mail de destination

Tags :
  • Email
  • Programmation
Dernière réponse : dans Programmation
13 Juin 2007 11:59:15

N'ayant pas de réponses, je suppose que la page que j'ai mise est trop grande.

Je vous met juste la partie que j'ai modifié et la partie qui renvoie pour l'instant uniquement le message, et moi je souhaite renvoyé tous les champs au mail de destination mais je sais pas comment :

  1. <form method="post" accept-charset="utf-8" action="<?php echo $_SERVER["REQUEST_URI"]; ?>">
  2. <p class="field"><label for="intitule_expediteur">Vous êtes:</label>
  3. <input type="text" size="40" name="intitule_expediteur" id="intitule_expediteur" value="<?php
  4. if (!empty($_POST["intitule_expediteur"])) {
  5. //
  6. echo htmlspecialchars($_POST["intitule_expediteur"],ENT_QUOTES);
  7. }
  8. ?>"/>
  9. (exemple : Monsieur)
  10.  
  11. <p class="field"><label for="email_expediteur">Votre adresse e-mail :</label>
  12. <input type="text" size="40" name="email_expediteur" id="email_expediteur" value="<?php
  13. if (!empty($_POST["email_expediteur"])) {
  14. // l'adresse email de l'expéditeur a été saisie: la réafficher
  15. echo htmlspecialchars($_POST["email_expediteur"],ENT_QUOTES);
  16. }
  17. ?>" />
  18. (requis)</p>
  19.  
  20. <p class="field"><label for="nom_expediteur">Votre nom :</label>
  21. <input type="text" size="40" name="nom_expediteur" id="nom_expediteur" value="<?php
  22. if (!empty($_POST["nom_expediteur"])) {
  23. // l'adresse email de l'expéditeur a été saisie: la réafficher
  24. echo htmlspecialchars($_POST["nom_expediteur"],ENT_QUOTES);
  25. }
  26. ?>" />
  27. (requis)</p>
  28.  
  29. <p class="field">
  30. <label for="prenom_expediteur">Votre prénom :</label>
  31. <input type="text" size="40" name="prenom_expediteur" id="prenom_expediteur" value="<?php
  32. if (!empty($_POST["prenom_expediteur"])) {
  33. // l'adresse email de l'expéditeur a été saisie: la réafficher
  34. echo htmlspecialchars($_POST["prenom_expediteur"],ENT_QUOTES);
  35. }
  36. ?>" />
  37. </p>
  38.  
  39. <p class="field">
  40. <label for="psociete_expediteur">Société :</label>
  41. <input type="text" size="40" name="societe_expediteur" id="societe_expediteur" value="<?php
  42. if (!empty($_POST["societe_expediteur"])) {
  43. // l'adresse email de l'expéditeur a été saisie: la réafficher
  44. echo htmlspecialchars($_POST["societe_expediteur"],ENT_QUOTES);
  45. }
  46. ?>" />
  47.  
  48. </p>
  49. <p class="field"><label for="titre">Titre du message :</label>
  50. <input type="text" size="40" name="titre" id="titre" value="<?php
  51. if (!empty($_POST["titre"])) {
  52. // le titre du message a été saisi: le rafficher
  53. echo htmlspecialchars($_POST["titre"],ENT_QUOTES);
  54. }
  55. ?>" />
  56. </p>
  57. <p class="field"><label for="message">Votre message :</label>
  58. <textarea name="message" id="message" cols="30" rows="6"><?php
  59. if (isset($_POST["message"])) {
  60. // le message a t saisi: le rafficher
  61. echo htmlspecialchars($_POST["message"],ENT_QUOTES);
  62. }
  63. ?></textarea></p>
  64. <p><input type="submit" name="envoyer" value="Envoyer" />
  65. </p>
  66. </form>
  67. <?php
  68. }
  69. else {
  70. // le formulaire a ete soumis sans erreur, on envoie le mail
  71. $entete = "From: \"{$_POST["nom_expediteur"]}\" <{$_POST["email_expediteur"]}>\n";
  72. $entete .= "MIME-Version: 1.0\n";
  73. $entete .= "Content-Type: text/plain; charset=\"utf-8\"\n";
  74. $entete .= "Content-Transfer-Encoding: 8bit\n";
  75. // Optionnel mais bien utile : garder trace de l'IP de l'expéditeur
  76. $entete .= "X-Originating-IP: " . $_SERVER['REMOTE_ADDR'];
  77.  
  78. // Encode le sujet en BASE64
  79. $subject = "=?utf-8?B?" . base64_encode($_POST["titre"]) . "?=";
  80.  
  81. // wrappe à 75 caractères le corp du message, afin de rester conforme avec l'usage...
  82. // juste un bug : wordwrap ne comprends pas les caractères multi-bytes d'UTF-8
  83. // mais en première approximation, c'est suffisant
  84. $body = wordwrap($_POST['message'], 78);
  85.  
  86. if (@mail($email_webmaster, $subject, $body, $entete)){
  87. // lorsque le mail aete envoye afficher un message de confirmation et proposer un lien pour revenir a l'accueil
  88. // modifiez le lien de retour en fonction de votre url
  89. echo "<p>Votre mail a été envoyé <br /><br /> ";
  90. echo "Vous allez être redirigé sur la page d'accueil dans 4 secondes <br/><meta http-equiv=\"refresh\" content=\"4;URL=<a href="http://www.adresse.fr" rel="nofollow" target="_blank">http://www.adresse.fr</a>";
  91. }
  92. else {
  93. // s'il s'est produit une erreur lors de l'envoi du mail, on le signale et on propose de retourner au formulaire
  94. echo "Un probleme s'est produit lors de l'envoi du message.\n";
  95. echo "<a href=\"".$_SERVER["REQUEST_URI"]."\">Reessayez...</a>\n";
  96. }
  97. }
  98. ?>


Merci.

Autres pages sur : renvoye champs formulaire mail destination

13 Juin 2007 12:03:53

salut,
je comprends pas bien, qu'est ce qui t'empeche de rajouter les autres champs?
13 Juin 2007 12:13:12

Je sais pas comment les rajouter justement, je l'ai affiche mais comment je peux les recuperer ?

C'est un formulaire que j'ai recuperer et modifier selon mes besoins mais j'ai reussi juste à afficher les champs comme je voulais.

Maintenant je veux renvoyer les valeurs de ces champs.

Merci.
Contenus similaires
13 Juin 2007 12:15:37

tu les rajoutes dans $body puisque c'est le corps du mail (le contenu qui sera envoyé)

et vire moi le @ devant mail() bordel ! :) 
13 Juin 2007 12:24:03

Ok Okinou, je l'ai enlevé, j'espere que ca marchera toujours, car je débute en php :

donc je dois mettre ca :

  1. $body = wordwrap($_POST['intitule_expediteur']);
  2. $body = wordwrap($_POST['email_expediteur']);
  3. $body = wordwrap($_POST['nom_expediteur']);
  4. $body = wordwrap($_POST['prenom_expediteur']);
  5. ...
  6. $body = wordwrap($_POST['message'], 78);


Le 78 pour le message il sert à quoi en fait ?

Merci.
13 Juin 2007 12:43:46

wordwrap rajoute un retour à la ligne
si tu fais:
a=1
a=4
a=6
à ton avis, combien vaudra a?

concatenation
wordwrap
13 Juin 2007 12:48:06

Wordwrap te créer un retour à la ligne tous les x caractères mais en te le faisant par "mot" voir le lien de coca,
sinon

# $body = wordwrap($_POST['intitule_expediteur']);
# $body = wordwrap($_POST['email_expediteur']);
# $body = wordwrap($_POST['nom_expediteur']);
# $body = wordwrap($_POST['prenom_expediteur']);

Ca sert à rien ! il suffit pas de copier/coller, faut se renseigné un minimum ;p

le @ devant la fonction mail permettra de débeugé plus facilement l'erreur retourné en cas d'echec d'envoi du mail (ex probleme de serveur smtp etc) alors qu'avant cette modifie cela t'aurais juste retourné : erreur pendant l'envoie, c'est bien joli mais comment tu en aurais su la cause ? en jouant au devinette ? :p 
13 Juin 2007 13:41:17

ouai fin bref je demande pas un cours, je veux juste savoir ce que je dois mettre... Surtout si vous le savez ! :p 

Sinon je sens que ca va m'enerver cette histoire de php :/ 

Merci de vos remarques quand même.
13 Juin 2007 13:49:19

Démerde toi. Les explications sont faites pour êtres comprises et savoir ce que l'on fait, meme quand on copie betement un code ...
Oui je sais comment faire.
Maintenant cela ne sert à rien que l'on te corrige et t'expliques si tu ne veux pas apprendre. Il faut pas attendre que cela te tombe tout cuit dans le bec.

a+
13 Juin 2007 14:01:10

OK vu comme ca ...
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