Envoi formulaire complexe sur email via PHP
Salut a tous,
Cela fait maintenant 1 semaine que je cherche une solution à mon probleme.
J'ai créer un formulaire comprenant des champs texte, des boutons radio, des cases a cocher .... bref unn peut de tout ;)
Je désire envoyer les données complétées par l'utilisateur sur ma boite email, je pense que le meilleur moyen est de passer par un fichier PHP, cependant je ne trouve aucuns tutorial clair qui comporte de multiples champs a inclure dans le "body" du mail.
De plus il faut absolument que je termine ce truc le plus rapidement possible :(
Si un pro pouvait me filer un coup de pouce je lui en serait éternellemnt reconnaissant ;)
Cela fait maintenant 1 semaine que je cherche une solution à mon probleme.
J'ai créer un formulaire comprenant des champs texte, des boutons radio, des cases a cocher .... bref unn peut de tout ;)
Je désire envoyer les données complétées par l'utilisateur sur ma boite email, je pense que le meilleur moyen est de passer par un fichier PHP, cependant je ne trouve aucuns tutorial clair qui comporte de multiples champs a inclure dans le "body" du mail.
De plus il faut absolument que je termine ce truc le plus rapidement possible :(
Si un pro pouvait me filer un coup de pouce je lui en serait éternellemnt reconnaissant ;)
Configuration: Windows XP Firefox 2.0.0.7
44 réponses
Résumé de la discussion
Un formulaire HTML avec des champs texte, des cases à cocher et des boutons radio pose la question d'envoyer les données vers une boite email en utilisant PHP. Le souci central est de construire le corps du message avec tous les champs et de gérer des tableaux pour les valeurs des cases à cocher afin d'inclure toutes les données. Plusieurs réponses proposent des approches variées, allant de l'assemblage du corps du mail ligne par ligne à l'usage d'en-têtes MIME et de boucles pour récupérer chaque valeur. D'autres échanges évoquent des erreurs fréquentes comme l'indexation des cases à cocher et recommandent de vérifier la récupération des premières entrées et d'ajouter des tests pour l'envoi.
-
Une question me taraude .....
n'est-il pas possible de masquer les erreurs PHP, je veux dire : ne peut-on pas éviter que les messages n'apparaissent ???
Ce serait l'idéal... ;) -
je viens de toruver un exemple de fonction mail sur lycos donc multimania :
http://www.lycos.fr#mail
je fais "tout comme y disent" et caz ne fonctionne pas, j'en ai ras la casquette de ce truc ! -
Je viens de tester ton astuce...
mais lorsque tu crée le formulaire, il renvoi vers du CGI-BIN ???
voila le code
<form enctype="multipart/form-data" method="post" action="/cgi-bin/mailer">
<table border="0">
<tr>
<td><b>Votre nom :</b></td>
<td><input type="text" name="NAME" maxlength="35" size="37" value=""></td>
</tr>
<tr>
<td><b>Votre e-mail :</b></td>
<td><input type="text" name="FROM" maxlength="35" size="37" value=""></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Envoyer"> <input type="reset" value="Effacer"></td>
</tr>
</table>
<input type="hidden" name="TO" value="maintenance_ma2i@caramail.com">
<input type="hidden" name="SUBJECT" value="Enquete">
<input type="hidden" name="GOTOURL" value="">
</form>
Comment l'adapter a mon cas ? -
a priori multimania n'active pas la fonction mail par défaut. sur multimania, tu te log, après tu vas sur php4u. dans la partie droite tu cliques sur
Plus de fonctionnalités ?
Créer un formulaire de mail
et tu fait ce qu'il te demande. -
Effectivement,
j'ai ouvert un compte Multimania pour tester la chose, j'ai hébergé seulement mon fichier php dessu et effectivement, il n'y a aucune erreurs mais je ne recoit pas le mail :( -
MEEEEEEEEEEEEEEEEEERRRRCCCCIIIIIIIIIIIIIIIIIIIIIIIIIIII ;)
-
apparement, vu les fonctions que tu utilise le 4 est suffisant. D'ailleur sur multimainia je suis en 4 et ca marche ...
-
Une dernièrer question (enfin j'espère lol)
I me faut du PHP4 ou 5 ou on ça n'est pas important ... ? -
Merci quand même ;)
-
Non, je ne les connais. Au niveau pro, je n'ai jamais bossé sur des hebergement gratuit. Du coté perso, j' ai un compte sur multimania pour "m'amuser" mais il sont pénible avec leur pub. désolé, mais pour ca, je ne pourrai pas t'aider.
Bon courage et au plaisir -
oups .... lol
le voila => http://www.pages-wp.fr/
je me suis inscrit mais au moment de recevoir le mail, ca a visiblement "déconné" pfff -
Je viens de trouver cet hébergeur apparemment gratuit avec PHP...
Le connais-tu ?
Tu pense que cela pourrais aller pour mon formulaire ? -
OK ...
merci beaucoup pour ton aide :)
Je vais contacter la personne qui s'occupe de l'hébergement de mon site.
Encore une fois, mille merci :) -
je sens que tu va pas aimer, mais tes scripts marche très bien (à part les mails que je n'ai pas recu). j'ai fait :
echo($body);
juste avant l'envoi du mail en local sur easyphp. ca marche je l'ai mis également sur un site qui me sert à faire des test :
http://membres.lycos.fr/jeanmarieperso/jerome/Enquete.htm
ca marche bien aussi. tu constatera que je n'ai que les option cochées et pas d'erreur. A mon avis, il faut que tu vois ce probleme avec ton hebergeur -
<html>
<head>
</head>
<body>
<?
ini_set('sendmail_from', 'enquete@aol.com');
$Interet=$_POST['Interet'];
$Quel_interet=$_POST['Quel_interet'];
$appel=$_POST['appel'];
$Si_NON_Pourquoi=$_POST['Si_NON_Pourquoi'];
$autres_besoins=$_POST['autres_besoins'];
$Commentaires=$_POST['Commentaires'];
$Nom=$_POST['Nom'];
$Prenom=$_POST['Prenom'];
$societe=$_POST['societe'];
$fonction=$_POST['fonction'];
$MailTo = "jerome.smo@wanadoo.fr";
$MailSubject = "Enquete";
$Envoi = 1;
if ($Interet == ""){
echo("Merci de préciser votre interet<br>");
$Envoi = 0;
}
else {
$body= "Interet : $Interet\n";
}
$body .="Quel_interet :";
$items = 21;
for ($i = 0; $i <= $items; $i++) {
$body .= "\n$Quel_interet[$i]";
}
if ($appel == ""){
echo("Merci de préciser si vous désirez faire appel à nos service<br>");
$Envoi = 0;
}
else {
$body .= "\nappel : $appel\n";
}
$body .= "Si_NON_Pourquoi : $Si_NON_Pourquoi\n";
$body .= "autres_besoins : $autres_besoins\n";
$body .= "Commentaires : $Commentaires\n";
if ($Nom == ""){
echo("Vous n'avez renseigné votre nom.<br>");
$Envoi = 0;
}
else {
$body .= "Nom : $Nom\n";
}
if ($Prenom == ""){
echo("Vous n'avez renseigné votre prénom.<br>");
$Envoi = 0;
}
else {
$body .= "Prenom : $Prenom\n";
}
if ($societe == ""){
echo("Vous n'avez renseigné le nom de votre société.<br>");
$Envoi = 0;
}
else {
$body .= "Societe : $societe\n";
}
if ($fonction == ""){
echo("Vous n'avez renseigné votre fonction.<br>");
$Envoi = 0;
}
else {
$body .= "Fonction : $fonction\n";
}
if ($Envoi == 0) {
echo("<p><a href=\"Javascript:history.go(-1)\"><center><strong>RETOUR</strong></center></a></p>");
}
if ($Envoi == 1) {
echo("<p><strong>Etes vous intéressé ? <font color=\"#0000FF\">$Interet</font>\n");
echo("<br>Quand pourriez-vous faire appel a nos services ? <font color=\"#0000FF\">$appel</font>\n");
echo("<br>Si non pourquoi ? <font color=\"#0000FF\">$Si_NON_Pourquoi</font>\n");
echo("<br>Auriez vous d'autres besoins ? <font color=\"#0000FF\">$autres_besoins</font>\n");
echo("<br>Quelques commentaires ? <font color=\"#0000FF\">$Commentaires</font>\n");
echo("<br>Nom : <font color=\"#0000FF\">$Nom</font>\n");
echo("<br>Prénom : <font color=\"#0000FF\">$Prenom</font>\n");
echo("<br>Société : <font color=\"#0000FF\">$societe</font>\n");
echo("<br>Fonction : <font color=\"#0000FF\">$fonction</font>\n");
echo("<p> </p>");
mail($MailTo, $MailSubject, $body);
echo("<p>Votre message a bien été envoyé.<br>Merci de vos commentaires.");
echo("<p> </p><p> </p><p align=\"center\"><a href=\"index.htm\">Retour</strong></a></p>");
}
?>
</body>
</html> -
oui, pourquoi pas ca sera plus simple.
-
Salut,
Pour le formulaire voici l'adresse :
http://www.alsprod.com/Enquete_version_PHP2.html
tu veux aussi le code PHP complet ? -
est-ce tu peux poster le code complet de ton formulaire. comme ca je pourrais tester de mon coté. Après uyne bonne nuit de sommeil, on va trouver une solution. Sinn, s'i est en ligne, files moi l'adresse.
-
ouh la ca se complique la
je n'arrive pas a comprendre qu'il n'éxiste pas une syntaxe simple pour envoyer e genre de truc, ca doit etre souvent utilisé tout de meme.
Je vais réfléchir a ta solution, meme si je pense ne pas etre capable de realiser ce genre de truc en javascript...
Merki ;) -
tu peux peut etre dans un javascript sur ton formulaire tester si tes Quel_interet[] sont vides ou s'ils contiennent tes valeurs. S'ils sont vides ou nuls, essaye de leur remettte une valeur =0 de facon a ce que qd ton tableau "arrive en php, il contienne boien 21 valeurs
- 1
- 2
- 3
Suivant