Envoie de formulaire par mail

Envoie de formulaire par mail - PHP - Programmation

Marsh Posté le 08-06-2006 à 11:50:40    

Bonjour,  
j'envoie un formulaire html par mail (classe html_mime_mail).

Code :
  1. // le texte html a envoyer
  2. $html_to_send = " <head><style type='text/css'><!--
  3.     .Style8 {
  4.     color: #0033CC;
  5.     font-family: 'Comic Sans MS';
  6.     font-size: 12px;
  7.     }
  8.     -->
  9.     </style>
  10.            </head>";
  11. $html_to_send .= "Bonjour,";
  12. $html_to_send .= "<br />";
  13. $html_to_send .= "Ceci est un formulaire de suivi de fabrication.";
  14. $html_to_send .= " Veuillez renseigner SVP les champs suivants au fur et à mesure du traitement de la demande.";
  15. $html_to_send .= "<br />";
  16. $html_to_send .= "Merci";
  17. $html_to_send .= "<FORM METHOD=POST ENCTYPE='text/plain' ACTION='mailto:moi@domaine.com'>";
  18. $html_to_send .= "<PRE class='Style8'>";
  19. $html_to_send .= "<u>Estimation du délai de livraison de la fabrication :</u><INPUT NAME='Delai de Livraison' size=30>";
  20. $html_to_send .= "<br />";
  21. $html_to_send .= "<br />";
  22. $html_to_send .= "<u>Etat de la fabrication :</u>";
  23. $html_to_send .= "<br />";
  24. $html_to_send .= "En cours<INPUT TYPE=RADIO NAME='Etat de la Fabrication' VALUE='En cours'>";
  25. $html_to_send .= "<br />";
  26. $html_to_send .= "Réalisé <INPUT TYPE=RADIO NAME='Etat de la Fabrication' VALUE='Réalisée'>";
  27. $html_to_send .= "<br />";
  28. $html_to_send .= "<u>Remarque : </u><TEXTAREA NAME=Remarques rows=5 cols=30></TEXTAREA>";
  29. $html_to_send .= "<br />";
  30. $html_to_send .= "<INPUT TYPE=SUBMIT VALUE=Envoyer>";
  31. $html_to_send .= "<br />";
  32. $html_to_send .= "</PRE>";
  33. $html_to_send .= "</FORM>";
  34.  
  35.   $mon_mail->add_body($html_to_send);


 
Le formulaire est bien reçu chez le destinataire mais quand il me le renvoie compléter j'obtiens un truc du genre :

Code :
  1. D%E9lai+de+Livraison=yes&Etat+de+la+Fabrication=En+cours&Remarques=ok


 
Quelqu'un peut me donner une explication au truc ?

Reply

Marsh Posté le 08-06-2006 à 11:50:40   

Reply

Marsh Posté le 08-06-2006 à 11:56:19    

sauf erreur de ma part, c'est toujours comme ca que fonctionne un form avec ACTION="mailto:xx"
 
si tu veux le traiter automatiquement, autant faire un ACTION="traitement.php" , alors que si tu prefere le faire manuellement, mieux vaut simplement demander aux personnes de repondre a ton mail

Reply

Marsh Posté le 08-06-2006 à 14:05:12    

je comprends pas bien ce que tu veux dire (désolé je débute) !
ce formulaire est en fait le mail au format html. Je voudrais une reponse plus exploitable quand le destinataire repond.

Reply

Marsh Posté le 08-06-2006 à 15:46:09    

Salut,
Et bien en fait, au lieu de t'embêter avec la fonction mailto, qui, il me semble, nécessite que l'utilisateur ait configuré un client de messagerie (outlook, thunderbird...), tu peux rediriger vers un script php, comme le disait flo850...
 

Explications:

 
==> Dans ton form, il faut rediriger vers un script php, qui lui traitera le formulaire.
- Comment faire? il suffit de spécifier ta page dans l'attribut ACTION de form

Citation :

<form ... action="traitement.php">


==> Puis tu fais ta page de traitement, traitement.php, ou tu traite les données reçues, et que tu renvoie avec la fonction mail() de php.
- Avantage de mail(): t'as pas besoin d'avoir configuré un client de messagerie. En fait l'utilisateur envoie les données sur le serveur, et ce dernier traite la demande et t'envoie un mail de la part de nom_de_domaine@fournisseur.domaine (xxxxxx@free.fr par exemple...).
 
Si tu veux savoir comment créer le formulaire qui te sera envoyé, va voir le message de carole8!
 
Voilà, si t'as un soucis, n'hésite pas à demander!  :)

Reply

Marsh Posté le 08-06-2006 à 15:58:46    

en fait, c un formulaire de suivi de production.
je fais ma demande par mail au format html en joignant un pdf (ça c pour le service qui gère la prod), au fur et à mesure de l'état d'avancement de ma demande, il m'indique son état en cochant les boutons radio (en attente, en cours, réalisée). Un clic sur "Envoyer" et ça me préviens par mail du changement d'état.
On fonctionne sur réseau local avec Lotus notes.
J'ai enendu parler de CGI mais je comprends pas tout...


Message édité par snp le 08-06-2006 à 15:59:21
Reply

Marsh Posté le 08-06-2006 à 16:50:15    

Bon okay, c'est très simple en fait, c'est exactement ce que je viens de t'expliquer, mais je vais te détailler  :D .  
 :bounce: Mini tuto:
 
Première chose, change le nom de tes champs "Etat de production" en "Etat_de_production"; normalement çà change rien, mais par sécurité, on sait jamais! :jap:  
Sinon, la page que t'as écrite tu la garde, sauf que tu modifie la valeur de l'attribut ACTION.
 
Deuxièmement, il faut que tu redirige les données que l'utilisateur a rentré vers une page de traitement:

Citation :


<FORM METHOD=POST ENCTYPE='text/plain' ACTION='traitement.php'>


 
Puis, tu créer ta page de traitement, traitement.php. Elle aura a peu près cette allure:

Citation :


<?php
 
 
  $dest = "toi@domaine.com"; //Ton adresse de messagerie, remplace le mailto...
  $sujet = "Suivi de production"; //Le sujet de ton message
  $exp = ""; //Champs facultatif qui permet d'ajouter des infos du style From: CC: etc...
  $message = "Etat de la production: " . $_POST['Etat_de_production']; //Contenu de ton message
 
  $envoi = mail($dest, $sujet, $message, $exp); //Envoi du mail par la fonction mail()
 
  echo "<br><br>Merci d'avoir posté l'état de la production."; //Phrase de remerciement, ou cke tu veux; mais mets quelquechose pour que l'utilisateur puisse s'assurer que çà a bien marché
 
 
?>
 
 


 
Donc, le déroulement se passera ainsi:
1) l'utilisateur va sur la page et coche la bonne option
2) il clique sur le bouton envoyer
3) il voit une nouvelle page qui s'affiche avec marqué "Merci d'avoir posté l'état de la production"; en parallèle, le mail t'aura été envoyé et l'utilisateur pourra quitter la fenêtre.
 
L'avantage de cette fonction c'est que tu peux modifier la mise en forme selon tes désirs, tandis qu'avec mailto, c'est une composante html, donc limitée, et avec un resultat pas top...Enfin, c'est mon avis ^^
 
Voilà, en espérant t'avoir aidé!
 
Bye!! :hello:

Reply

Marsh Posté le 08-06-2006 à 17:24:23    

je comprends bien le principe de ton truc mais l'utilisateur n'a pas accès à ce 'traitement.php' ! je te rappelle le fonctionnement de mon truc : le mail que j'envois c un mail au format HTML. Si il clic sur 'envoyer' apres avoir renseigné ses champs il obtient un popup 'syntaxe URL incorrect'.
Logique, non ?

Reply

Marsh Posté le 08-06-2006 à 17:30:16    

Je comprend pas, pourquoi il n'aurait pas accès a traitement.php
 
PS: si y'en a d'autres qui ont des idées, repoussez la flemme et allez-y, un effort, transmettez votre savoir!!! :o

Reply

Marsh Posté le 08-06-2006 à 17:32:39    

reseau local mais sites géographiques differents et serveurs différents.
Merci pour ton soutien

Reply

Marsh Posté le 08-06-2006 à 18:54:59    

oh pinaise....!
y'a un truc bizarre qui se passe avec ta technique Aguila73 :
le sce destinataire reçoit ma demande par mail au format html. ça OK.
il ouvre le mail sous lotus, clic sur le boutton radio et fais "submit"...rien ne se passe. Par contre qd il veut fermer le mail lotus lui demande "envoyer et enregistrer" envoyer uniquement" etc...on clic sur envoyer et là je reçoit mon formulaire avec le changement d'état ! Par contre c bizzarre comme comportement je trouve....en plus je me retapes les pieces jointes a chaque fois.
Pour faciliter le truc, je precise que je m'envois les mails (pour l'instant le destinataire c'est moi !).
KESAKO chef ?

Reply

Marsh Posté le 08-06-2006 à 18:54:59   

Reply

Marsh Posté le 08-06-2006 à 20:53:52    

Ah ouai, en fait, j'avais pas tilté que t'utilisais déjà un client pour envoyer ta demande...en fait, je pensais que les gars tu les envoyait sur un site web pour leur demander...
Sinon, pour ton problème, je pense que çà vient du fait que lotus te demande ton autorisation pour utiliser la fonction mail()...mais ca me paraît bizarre quand même...
Je vais pas te mentir, là je crois que je bloque :??: , je n'ai jamais fais de test avec des clients de messageries.
Si y'en a qui savent...Petit UP pour toi snp  :)  
Je vais essayer d'y réfléchir, je te tiens au courant si je trouve quelquechose.
Bye, bonne chance! :hello:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed