Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2113 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Envoie de formulaire par mail

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Envoie de formulaire par mail

n°1383611
snp
quand on sait pas, on se tait
Posté le 08-06-2006 à 11:50:40  profilanswer
 

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 ?

mood
Publicité
Posté le 08-06-2006 à 11:50:40  profilanswer
 

n°1383621
flo850
moi je
Posté le 08-06-2006 à 11:56:19  profilanswer
 

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

n°1383739
snp
quand on sait pas, on se tait
Posté le 08-06-2006 à 14:05:12  profilanswer
 

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.

n°1383851
Aguila73
Posté le 08-06-2006 à 15:46:09  profilanswer
 

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!  :)

n°1383860
snp
quand on sait pas, on se tait
Posté le 08-06-2006 à 15:58:46  profilanswer
 

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
n°1383924
Aguila73
Posté le 08-06-2006 à 16:50:15  profilanswer
 

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:

n°1383964
snp
quand on sait pas, on se tait
Posté le 08-06-2006 à 17:24:23  profilanswer
 

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 ?

n°1383969
Aguila73
Posté le 08-06-2006 à 17:30:16  profilanswer
 

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

n°1383970
snp
quand on sait pas, on se tait
Posté le 08-06-2006 à 17:32:39  profilanswer
 

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

n°1384006
snp
quand on sait pas, on se tait
Posté le 08-06-2006 à 18:54:59  profilanswer
 

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 ?

mood
Publicité
Posté le 08-06-2006 à 18:54:59  profilanswer
 

n°1384085
Aguila73
Posté le 08-06-2006 à 20:53:52  profilanswer
 

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:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Envoie de formulaire par mail

 

Sujets relatifs
Problème de validation de formulaireFormulaire input type=file
help about mail()Envoyer une selection de mail
[RESOLU]Envoie via outlook d'un mail "préformatté" depuis un formulairpb avec recuperation de formulaire pour envoie d'un mail
Recherche Envoie mail par Formulaire Sans phpenvoie de formulaire par mail
[PDF] Envoie de formulaire par mailJ'ai un pb de fenêtre avec mon formulaire d'envoie de mail
Plus de sujets relatifs à : Envoie de formulaire par mail


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR