Titre: [Résolu]Récuperer les données d'un formulaire
Posté par: emarie3680 le le 23-10-2008 a 15:29:30
Bonjour, J'ai créé un formulaire avec Dreamweaver 3.0. Je voudrais récupérer dans ma boîte mail les données que saisiront les utilisateurs de ce formulaire. Pourriez-vous me conseiller un script qui sait faire ça, tout en sachant que mon formulaire existe déjà en .htm ? Merci pour votre aide. Éric |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: ekevin le le 27-10-2008 a 12:48:09
Bonjour,
Malheureusement il faut coder le formulaire, il n'est pas possible d'avoir une solution adaptable à n'importe quel formulaire.
Contactez-moi sur mon mail et je vous coderai votre formulaire. |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: emarie3680 le le 27-10-2008 a 13:34:50
Bonjour, Merci pour votre réponse et votre proposition. Je voudrais essayer de m'en sortir par mes propres moyens avec ce formulaire. Depuis que j'ai posté mon message sur le forum, j'ai quand même progressé et ai commencé à créer un fichier de traitement .php. J'avance tout doucement. Pourrai-je faire appel à vous si j'ai des soucis ? Je redoute les erreurs du genre "parse error" et autre ... Merci encore ! Éric
|
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: ekevin le le 27-10-2008 a 14:00:12
| N'hésitez pas à me contacter, c'est sans problème |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: emarie3680 le le 27-10-2008 a 14:33:31
Et ben voilà !!! J'ai continué mon formulaire et suis confronté à de nouvelles interrogations ... À chaque évolution il y a de nouveaux écueils... Voilà à quoi ressemble le fichier de traitement php :
<?php if($_POST) { $fille = $_POST['fille']; $garcon = $_POST['garcon']; $Age = $_POST['Age']; $collegien = $_POST['collegien']; $lyceen = $_POST['lyceen']; $etudiant = $_POST['etudiant']; $formation = $_POST['formation']; $demploi = $_POST['demploi']; $salarie = $_POST['salarie']; $autressitu = $_POST['autressitu']; $SituationAutre = $_POST['SituationAutre']; $Ville = $_POST['Ville']; $centresinteret = $_POST['centresinteret'];
if(isset($_POST['fille'])) { $fille = htmlentities($_POST['fille']); }
if(isset($_POST['garcon'])) { $garcon = htmlentities($_POST['garcon']); }
if(empty($erreurs)) { $to = "test@yahoo.fr"; $contenu = ".$fille; $contenu .= ".$garcon; $resultat = mail($to,$subject,$contenu,$reply); }
if($resultat) { echo "email envoyé avec succès"; } else { echo "échec envoi du mail vérifiez les données entrées"; }
} ?>
Je voudrais savoir s'il y a moyen d'éviter de "déclarer" chaque champ de formulaire ($fille = $_POST......) comme j'ai fait au début. N'y a-t-il pas un traitement "par lot" ? De la même façon, y-a-t-il un moyen d'envoyer d'un coup par mail toutes les infos saisies dans mon formulaire (que ce soit dans un champ texte ou par bouton radio) et d'avoir à utiliser 50 fois if ... isset ... htmlentities ou plus bas $contenu (d'ailleurs, je suis coincé à ce niveau je n'arrive pas à mettre "contenu = " plus de deux fois. J'ai vu la fonction foreach, mais je ne sais pas si elle est applicable là ... et ce que cela pourrait donner ... Merci d'avance, Éric |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: ekevin le le 27-10-2008 a 15:24:32
| Comme vous souhaitez apprendre voici une solution, pourquoi ne pas stocker toutes les données envoyées dans un tableau, ainsi il suffirait de faire une boucle pour tester en quelques lignes toutes vos variables |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: emarie3680 le le 27-10-2008 a 15:29:34
| OK, mais je souhaite envoyer les données saisies à une adresse email ... |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: ekevin le le 27-10-2008 a 15:34:19
il faut utiliser la fonction mail()
Un tutoriel ici : http://a-pellegrini.developpez.com/tutoriels/php/mail/ Et un manuel indispensable ici : php.net |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: emarie3680 le le 27-10-2008 a 16:32:40
OK, je vais aller voir ça. Merci ! Éric |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: D.F le le 27-10-2008 a 23:50:45
Bonjour,
Et ben voilà !!! J'ai continué mon formulaire et suis confronté à de nouvelles interrogations ... À chaque évolution il y a de nouveaux écueils... Voilà à quoi ressemble le fichier de traitement php :
|
|
Le code de votre fichier php est mal optimisé, certaines variables ne sont même pas déclarées ($subject, $reply). Si besoin d'aide, je peux vous aider ;)
Bonne journée
Amicalement |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: emarie3680 le le 28-10-2008 a 09:26:54
Bon, je jette l'éponge, je n'y arrive pas. Si vous voulez m'aider, vous trouverez mon fichier htm ci-dessous. Le but du jeu est de récupérer ce que les gens saisissent en ligne et que ça me soit renvoyé à mon adresse mail (emarie3680@yahoo.fr).
<html> <head> <title>Questionnaire</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript"> <!-- function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document); if(!x && document.getElementById) x=document.getElementById(n); return x; }
function MM_validateForm() { //v4.0 var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; } else if (test!='R') { if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; } } if (errors) alert('The following error(s) occurred:\n'+errors); document.MM_returnValue = (errors == ''); } //--> </script> </head>
<body bgcolor="#FFCC66" text="#000000"> <p> </p> <table width="75%" border="1"> <tr> <td bordercolor="#3333CC" height="47"> <div align="center"><font size="+2"><b>FAIS-TOI CONNAITRE !</b></font></div> </td> </tr> </table> <form action="Traitemenquest.php" method="post"> <p>Tu es : </p> <table width="23%" border="0"> <tr> <td width="12%"> <input type="radio" name="fille" value="fille"> </td> <td width="36%">Fille</td> <td width="15%"> <input type="radio" name="garcon" value="garcon"> </td> <td width="37%">Garçon</td> </tr> </table> <p>Tu as : <input type="text" name="Age" size="8"> ans</p> <p>Tu es :</p> <table width="85%" border="0"> <tr> <td width="3%"> <input type="radio" name="collegien" value="collegien"> </td> <td width="11%">Collégien</td> <td width="4%"> </td> <td width="5%"> <input type="radio" name="lyceen" value="lyceen"> </td> <td width="8%">Lycéen</td> <td width="5%"> </td> <td width="4%"> <input type="radio" name="etudiant" value="etudiant"> </td> <td width="8%">Étudiant</td> <td width="4%"> </td> <td width="4%"> <input type="radio" name="formation" value="formation"> </td> <td width="44%">En formation</td> </tr> <tr> <td width="3%"> <input type="radio" name="demploi" value="demploi"> </td> <td width="11%">Demandeur d'emploi</td> <td width="4%"> </td> <td width="5%"> <input type="radio" name="salarie" value="salarie"> </td> <td width="8%">Salarié</td> <td width="5%"> </td> <td colspan="5"> Autres Préciser : <input type="text" name="SituationAutre"> </td> </tr> </table> <p>Quelle est ta ville ? : <input type="text" name="Ville"> </p> <p>Comment te déplaces-tu ? : <input type="text" name="deplacement"> </p> <p>Quels sont tes centres d'intérêt ? <input type="text" name="centresinteret"> </p> <p>Merci de nous laisser tes coordonnées :</p> <table width="38%" border="0"> <tr> <td>Nom :</td> <td> <input type="text" name="Nom"> </td> </tr> <tr> <td>Prénom :</td> <td> <input type="text" name="Prenom"> </td> </tr> <tr> <td>Tél.</td> <td> <input type="text" name="Tel"> </td> </tr> <tr> <td>Mail :</td> <td> <input type="text" name="Mail"> </td> </tr> </table> <p>-------------------------------------------------------------------------------------------------------------------------------------------------------</p> <p> <input type="submit" name="Submit" value="Envoyer" onClick="MM_validateForm('textfield','','R','textfield2','','R','textfield3','','R');return document.MM_returnValue"> <input type="reset" name="Submit2" value="Rétablir"> </p> </form> <p> </p> </body> </html>
|
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: D.F le le 28-10-2008 a 10:45:18
Bonjour,
Avant toute chose, il faut que vous définissiez les champs de votre formulaire que vous souhaitez voir être obligatoirement remplis par l'utilisateur. Après ça on pourra se pencher sur le traitement php ;)
Amicalement |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: emarie3680 le le 28-10-2008 a 10:57:49
Merci pour votre réponse, David, En fait, pour l'instant, je ne veux aucun champ obligatoire, je pense que cela facilitera les choses... Merci pour votre aide ! Éric |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: D.F le le 28-10-2008 a 19:24:07
Re,
Désolé pour le retard pas dispo avant, voici le traitement php simplet comme vous le vouliez. Pour commencer j'ai corrigé votre fichier html , copier coller le et nommer le questionnaire.html, tout simplement parce que j'ai mis une redirection dans le fichier php
Code:
<head> <title>Questionnaire</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <script language="JavaScript"> <!-- function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[n]; for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers.document); if(!x && document.getElementById) x=document.getElementById(n); return x; }
function MM_validateForm() { //v4.0 var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments; for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args); if (val) { nm=val.name; if ((val=val.value)!="") { if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@'); if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n'; } else if (test!='R') { if (isNaN(val)) errors+='- '+nm+' must contain a number.\n'; if (test.indexOf('inRange') != -1) { p=test.indexOf(':'); min=test.substring(8,p); max=test.substring(p+1); if (val<min || max<val) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n'; } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; } } if (errors) alert('The following error(s) occurred:\n'+errors); document.MM_returnValue = (errors == ''); } //--> </script> </head>
<body bgcolor="#FFCC66" text="#000000"> <p> </p> <table width="75%" border="1"> <tr> <td bordercolor="#3333CC" height="47"> <div align="center"><font size="+2"><b>FAIS-TOI CONNAITRE !</b></font></div> </td> </tr> </table> <form action="traitement.php" method="post"> <p>Tu es : </p> <table width="23%" border="0"> <tr> <td width="12%"> <input type="radio" name="sexe" value="fille" /> </td> <td width="36%">Fille</td> <td width="15%"> <input type="radio" name="sexe" value="garcon" /> </td> <td width="37%">Garcon</td> </tr> </table> <p>Tu as : <input type="text" name="age" size="8" value=""> ans</p> <p>Tu es :</p> <table width="85%" border="0"> <tr> <td width="3%"> <input type="radio" name="situation" value="collegien"> </td> <td width="11%">Collégien</td> <td width="4%"> </td> <td width="5%"> <input type="radio" name="situation" value="lyceen"> </td> <td width="8%">Lycéen</td> <td width="5%"> </td> <td width="4%"> <input type="radio" name="situation" value="etudiant"> </td> <td width="8%">Étudiant</td> <td width="4%"> </td> <td width="4%"> <input type="radio" name="situation" value="formation"> </td> <td width="44%">En formation</td> </tr> <tr> <td width="3%"> <input type="radio" name="situation" value="demploi"> </td> <td width="11%">Demandeur d'emploi</td> <td width="4%"> </td> <td width="5%"> <input type="radio" name="situation" value="salarie"> </td> <td width="8%">Salarié</td> <td width="5%"> </td> <td colspan="5"> Autres Préciser : <input type="text" name="situationautre" value=""> </td> </tr> </table> <p>Quelle est ta ville ? : <input type="text" name="ville" value=""> </p> <p>Comment te déplaces-tu ? : <input type="text" name="deplacement" value=""> </p> <p>Quels sont tes centres d'intérêt ? <input type="text" name="centresinteret" value=""> </p> <p>Merci de nous laisser tes coordonnées :</p> <table width="38%" border="0"> <tr> <td>Nom :</td> <td> <input type="text" name="nom" value=""> </td> </tr> <tr> <td>Prénom :</td> <td> <input type="text" name="prenom" value=""> </td> </tr> <tr> <td>Tél.</td> <td> <input type="text" name="tel" value=""> </td> </tr> <tr> <td>Mail :</td> <td> <input type="text" name="mail" value=""> </td> </tr> </table> <p>-------------------------------------------------------------------------------------------------------------------------------------------------------</p> <p> <input type="submit" name="Submit" value="envoyer" onClick="MM_validateForm('textfield','','R','textfield2','','R','textfield3','','R');return document.MM_returnValue"> <input type="reset" name="Submit2" value="Rétablir"> </p> </form> <p> </p> </body> </html>
|
|
Ensuite pour le fichier php vous devez mettre votre adresse email dans la variable $mon_email="mon_email" puis idem copier/coller et nommer le traitement.php; Voila si probleme n'hésitez pas, bon courage et bonne soirée.
Code:
<?php
// Récupération des varaiables du questionnaire $sexe = $_POST['sexe']; $age = $_POST['age']; $situation = $_POST['situation']; $situationautre = $_POST['situationautre']; $ville = $_POST['ville']; $deplacement = $_POST['deplacement']; $centresinteret = $_POST['centresinteret']; $nom = $_POST['nom']; $prenom = $_POST['prenom']; $tel = $_POST['tel']; $mail = $_POST['mail'];
// Definition de l'email pour la reception du questionnaire $mon_email = "mon_email"; $sujet = "Une personne vient de remplir le formulaire";
$headers = 'FROM: faistoiconnaitre@...'."\r\n"; $headers .='Content-Type: text/html; charset="iso-8859-1"';
// Definition du message comportant les données saisies par l'utilisteur
$message = "Sexe: $sexe<br>Age: $age ans<br>situation: $situation<br> Autres: $situationautre<br><br>"."\n\n"; $message .= "Ville: $ville<br>Deplacement: $deplacement<br>Centre d'intérêt: $centresinteret<br><br>"."\n\n"; $message .= "Nom: $nom<br>Prenom: $prenom<br>Tel: $tel<br>Mail: <a href=mailto:$mail>$mail</a>";
// Envoi du mail $envoi = mail($mon_email, $sujet, $message, $headers);
if ($envoi)
// Si le mail est bien envoyé on affiche un message de remerciement { echo '<center><div style="background:#E6E6FA; width:700px; border:1px solid blue; margin-top:150px; font-family: arial"> <p align="center" style="color:#191970; margin-top: 20px; margin-bottom: 20px; font-size: 120%"><b>Merci d\'avoir pris le temps de remplir le questionnaire </b><br><br> <font face= "arial" color="black" size="3"> Vos données saisies viennent d\'être envoyées au webmaster.</font></p> </div></center>'; }
// Si non on avertit et on redirige automatiquement sur le questionnaire
else { die ("<center><div align ='center' style='background:white; width:650px; border:3px solid #DC143C; margin-top:150px; font-family: arial'> <p align='center' style='color:#990000; margin-top: 20px; margin-bottom: 20px;'>Désolé une erreur est survenue lors de l'envoi du questionnaire, dans 5 secondes <br>vous allez être rediriger sur le site, merci de recommencer</p> </div></center><meta http-equiv='refresh' content='8; url=questionnaire.html'>"); }
?>] |
|
|
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: emarie3680 le le 28-10-2008 a 21:12:01
Bon, ben, merci 1000 fois ! Avant toute chose je vais essayer tout ça et je vous tiens au courant du résultat... Bonne soirée et merci pour tout le travail ! Je vais tout décortiquer à tête reposée pour voir votre cheminement. Éric |
Titre: Re:Cherche script recuperer donnees formulaire
Posté par: D.F le le 29-10-2008 a 08:54:59
Pas de souci tenez moi au courant :)
Bonne journée |
Titre: Re:[Résolu]Récuperer les données d'un formulaire
Posté par: ToToMaStEr le le 01-11-2008 a 22:58:05
Forum-webmaster | Actionné par YaBB SE
© 2001-2003, YaBB SE Dev Team. Tous droits réservés.
|