Récupération de données d'un formulaire mailé

Résolu
Miss_socrates Messages postés 925 Statut Membre -  
Miss_socrates Messages postés 925 Statut Membre -
Bonjour,

Quelqu'un peut-il m'aider? J'ai créé un formulaire en PHP à envoyer par mail avec la ligne $_POST pourchaque variable.
Je reçois effectivement le mail mais il ne contient pas les données, il n'y a que cinq *.
Dois-je insérer une ligne de code particulier?
Est-ce un problème dû à l'hébergeur?

Merci pour votre aide, je n'ai pas de connaissance en PHP, je commence.

6 réponses

Nico_ Messages postés 1302 Statut Membre 189
 
bonjour,

pour plus d'aide il nous faudrait ton code !

si tu veux il y a un générateur de formulaire

bonne journée
0
Miss_socrates Messages postés 925 Statut Membre 109
 
Voilà tout en bas le code (je travaille avec Microsoft expression web (remplace Frontpage)

mais avant, j'ai aussi un message d'erreur de définition de bouton radio avec les 2 options oui/non et c'est chaque fois le bouton NON (pair: 2, 4, 6, 8 etc.) qui pose problème. Ce message d'erreur s'inscrit sur la page disant au visiteur que le formulaire a bien été envoyé


Notice: Use of undefined constant php_track_vars - assumed 'php_track_vars' in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 39

Notice: Use of undefined constant php - assumed 'php' in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 40

Notice: Undefined index: Bouton2 in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 43

Notice: Undefined index: Bouton4 in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 45

Notice: Undefined index: Bouton6 in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 48

Notice: Undefined index: Bouton8 in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 50

Notice: Undefined index: Bouton9 in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 51

Notice: Undefined index: Bouton11 in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 54

Notice: Undefined variable: variables in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 63

Votre formulaire nous a bien été envoyé. Merci.


---------------------------------------------------------------------------------------------------------------------


Voici le code du formulaire d'envoi, j'emploie 2 formulaires, un pour que le visiteur enregistre ses données et un pour les commandes d'envoi
j'ai ajouté le code php_track_vars car je ne sais pas si l'hébergeur de mon site (un ministère de l'enseignement) accepte l'envoi de formulaires en PHP par mail (il n'acceptait pas les extensions Frontpage il y a quelques années, mais ils ont peut-être adapté).

dans la dernière ligne de code (mail... ) j'ai essayé avec chaque n° de variable mais ça ne marche pas et il me dit que j'ai mis trop de variable (il y en a 20) alors que le max est 5. donc j'ai regroupé toutes les variables sous '$variables'


</script>

<?php_track_vars?>
<?php>
$destination='monmail@gmail.com';
$variable1='Q1: '.$_POST['Bouton1'];
$variable2='Q1: '.$_POST['Bouton2'];
$variable3='Q2: '.$_POST['Bouton3'];
$variable4='Q2: '.$_POST['Bouton4'];
$variable5='Remarque: '.$_POST['Texte1'];
$variable6='Q3: '.$_POST['Bouton5'];
$variable7='Q3: '.$_POST['Bouton6'];
$variable8='Q4: '.$_POST['Bouton7'];
$variable9='Q4: '.$_POST['Bouton8'];
$variable10='Q4: '.$_POST['Bouton9'];
$variable11='Commentaire '.$_POST['Texte2'];
$variable12='Q5: '.$_POST['Bouton10'];
$variable13='Q5: '.$_POST['Bouton11'];
$variable14='Nom: '.$_POST['NomVisiteur'];
$variable15='Prénom: '.$_POST['PrenomVisiteur'];
$variable16='Adresse: '.$_POST['AdresseVisiteur'];
$variable17='Commune: '.$_POST['CommuneVisiteur'];
$variable18='Telephone: '.$_POST['TelephoneVisiteur'];
$variable19='GSM: '.$_POST['GsmVisiteur'];
$variable20='Mail: '.$_POST['MailVisiteur'];
$sujet='Formulaire';
mail($destination,$sujet,$variables);
?>
</head>
0
le père
 
Bonjour

Use of undefined constant php_track_vars
La ligne <?php_track_vars?> est erronnée ; de plus elle est totalement obsolète. Si tu travailles sur un PHP 4.0.3 ou plus récent, ce qui est très probable, tu peux la supprimer complètement.

Notice: Undefined index: Bouton2 ... Ça vient certainement du formulaire qui appelle ce script. Il faudrait voir le formulaire, mais tu n'as certainement pas défini Bouton2, Bouton4, etc... Tu as peut-être recopié Bouton1, Bouton3... et oublié de changer de nom

Notice: Undefined variable: variables tu dis : j'ai regroupé toutes les variables sous '$variables' . Mais non, tu n'as rien regroupé du tout. Où ça ? Pour regrouper toutes tes variables en une seule, il faut faire, juste avant mail(... :
$variables = "$variable1 <br /> $variable2 <br />";
$variables .= "$variable3 <br /> $variable4 <br />"; // attention, = la première fois, .= pour ajouter les autres variables
0
Miss_socrates Messages postés 925 Statut Membre 109
 
merci d'être venu sur ma question
j'ai corrigé et cela fonctionne, je reçois le mail avec les réponses

mais il indique encore le prob de bouton non défini alors que j'ai défini tous les boutons de la même manière (sans copier/coller)

Notice: Undefined index: Bouton2 in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 43

ce qui m'étonne aussi c'est que j'ai mis des boutons radio pour chaque réponse OUI ou NON et en testant je peux sélectionner les 2 options comme si c'était des cases à cocher et non des boutons radio. Sur le mail ,il m'envoie les 2 choix OUI et NON et une ligne d'erreur: étonnamment que pour le bouton 3 et pas les autres (alors que quand je teste avec la réponse OUI il me dit que c'est les boutons 2,4,6,8 qui sont pas défini et pas le 3):

Notice: Undefined index: Bouton3 in D:\web\cybercommunaute\csstvpenfantjesus\envoi.php on line 43

je ne trouve pas comment faire pour dire qu'il faut sélectionner le OUI ou le NON mais pas les deux.

déjà merci pour l'aide précieuse.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
le père
 
Montre le formulaire, ça vient certainement de la façon dont les boutons sont définis
0
le père
 
Je pense que pour ce que tu appelles "bouton" tu as utilisé des <input type="checkbox"> . Ça explique tout.
Les checkbox (cases à cocher) peuvent être cochées indépendamment les unes des autres, elles ne se remettent pas à zéro mutuelllement.
Seules les checkbox cochées sont envoyées. Donc si tu n'as pas coché Bouton2, Bouton2 n'est pas envoyé et $_POST['Bouton2'] n'existe pas, d'où le "Undefined index". Tu peux le tester avec la fonction isset :
if (isset($_POST['Bouton2'])) {
// la case a été cochée
} else {
// la case n'a pas été cochée
}

Mais surtout, tu aurais dû utiliser <input type="radio name... voir
http://fr.selfhtml.org/html/formulaires/choix.htm#boutons_radio
En donnant le même nom à plusieurs d'entre eux, ils se remettent à 0 les uns les autres. Je pense que c'est ça que tu cherches
0
Miss_socrates Messages postés 925 Statut Membre 109
 
j'ai bien employé des boutons et non des check box mais je me suis trompé dans les NAME , j'ai appelé les bouton OUI et NON de noms différents ; bouton1 pour OUI et bouton 2 pour NON
j'ai corrigé et tout fonctionne parfaitement.
Un grand merci pour ton aide.

Autre question: est-il possible dans un formulaire que le visiteur place non pas du texte mais une photo ?
Si oui, quel contrôle faut-il utiliser?

Merci
0
le père > Miss_socrates Messages postés 925 Statut Membre
 
Il faut utiliser un <input type="file"> pour télécharger une image. Et là ça commence à devenir un peu plus compliqué.
Des conseils ici :
https://www.commentcamarche.net/faq/889-php-upload-de-fichiers
0
Miss_socrates Messages postés 925 Statut Membre 109 > le père
 
Il se fait que je l'ai testé le formulaire (envoyé par mail) fin janvier et mon patron l'a complété, ça fonctionnait et je n'ai rien modifié. Je viens de retester hier, je reçois bien les données que j'ai encodé dans le formulaire.
Or, depuis 15 jours j'ai reçu 2 mails qui contiennent les balises mais pas les données qu'a complété le visiteur du site. Encore aujourd'hui Je suppose qu'on ne m'a pas fait une blague en renvoyant le formulaire vide.
Comment puis-je savoir si les champs ont bien été complétés par le visiteur ou si le problème vient de mon formulaire ou si ça vient du PC ou du navigateur du visiteur du site qui n'enverrait pas correctement les données des champs?
0
Miss_socrates Messages postés 925 Statut Membre 109 > le père
 
Il se fait que je l'ai testé fin janvier et mon patron l'a complété, ça fonctionnait et je n'ai rien modifié. Je viens de retester à l'instant, sur mon PC et à partir d'autres PC ça fonctionne, je reçois bien les données que j'ai encodé dans le formulaire.
Or, depuis 20 jours j'ai reçu 3 mails qui contiennent les balises mais pas les données qu'a complété le visiteur du site.
Je suis quasi sûr qu'on ne m'a pas fait une blague en renvoyant le formulaire vide.
Comment puis-je savoir si les champs ont bien été complétés par le visiteur ou si le problème vient de mon formulaire ou si ça vient du PC ou du navigateur du visiteur du site qui n'enverrait pas correctement les données des champs?
J'ai testé à partir de Firefox, il m'indique qu'il y a une erreur de code à une ligne mais je reçois malgré tout les données et les balises du formulaire.
Je ne comprends donc pas ce qui se passe.

D'avance merci pour votre aide.
0