Page 1 sur 1

reception données formulaire

Publié : 05 déc. 2006, 17:17
par pulgita
Bonsoir,
J'ai réalisé un formulaire suivant Ymai. Tout est OK sauf que lorsque je reçois le mail, les données sont absentes.
Le sujet à déjà été posté mais n'ai pas trouvé la réponse.
Je précise que je suis chez free et que php est supporté.
Un autre problème: les données d'un "textarea" ne sont pas recueillies sur la page "envoi.php" contrairement aux autres "input". Je pense que cela doit être simple mais comme je suis faible en code, je ne vois pas.
Merci
Voici le code:

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html
 lang="fr-fr"><head><meta id="_moz_prolog" content=""><meta
 id="_moz_prolog" content=""><meta id="_moz_prolog" content=""><meta
 id="_moz_prolog" content=""><meta
 content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>envoi</title></head>
<body
 style="color: rgb(102, 102, 102); background-color: rgb(255, 255, 255);"
 alink="#ffff00" link="#666666" vlink="#ffffff"><?php $np = htmlentities($_POST['nom']);
echo "Votre nom est $np <br />";
$p = htmlentities($_POST['prenom']);
$co = htmlentities($_POST['comment']);
$f = htmlentities($_POST['fonction']);
$s = htmlentities($_POST['societe']);
$m = htmlentities($_POST['mail']);
$t = htmlentities($_POST['telephone']);
echo "Votre telephone est $t <br />";
echo "Votre mail est $m <br />";
echo "Votre prénom est $p <br />";
echo "Vous êtes $f <br />";
echo "Chez $s <br />";
echo "Vos commentaires $co <br />";
$message = $np."\n";
$message = $p."\n";
$message = $s."\n";
$message = $m."\n";
$message = $t."\n";
$message = $co."\n";
mail ("info@monsite.com", "Essai", $message, "From: $np");
echo "Votre avis vient de m'être envoyé; <br />"
;?><br></body></html>
Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Publié : 05 déc. 2006, 18:27
par Ymai
Bonjour
Il y a un souci dans le code:

Code : Tout sélectionner

echo "Vos commentaires $co <br />";
$message = $np."\n";
$message = $p."\n";
$message = $s."\n";
$message = $m."\n";
$message = $t."\n";
$message = $co."\n"; 
La variable $message est réinitialisée à chaque ligne.
A la fin, elle ne contient que la valeur de $co + un passage à la ligne.

Il me semble que le code d'origine est du type

Code : Tout sélectionner

$message .= $np;
$message .= $p;
qui ajoute un bout de texte à chaque affectation.

Et puis aussi...

Code : Tout sélectionner

<meta id="_moz_prolog" content=""><meta
 id="_moz_prolog" content=""><meta id="_moz_prolog" content=""><meta
 id="_moz_prolog" content="">
peut être viré. Mais cela n'a pas de rapport avec le premier problème.

reception données formulaire

Publié : 05 déc. 2006, 19:58
par pulgita
Bonsoir Ymai,

J'ai fait les modifs mais la réponse mail tarde plusieurs heures, je ne sais pas pourquoi d'ailleurs (peut être une protection anti spam de Free?... bof) . Aussi je te donnerais le résultat demain.
Merci

Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3

Publié : 05 déc. 2006, 22:39
par Ymai
Tout dépend de la vélocité du serveur, et surtout de sa charge, en ces temps de spam intensif.
J'ai eu un problème identique sur un hébergement payant.
Attendons, donc.
Pour confirmer le diagnostic, un petit

Code : Tout sélectionner

echo $message;
juste avant la ligne d'envoi du mail permettrait déjà de lever un doute.

Publié : 07 déc. 2006, 10:04
par pulgita
Bonjour Ymai,

Le problème d'attente de réponse est réglé: j'ai supprimé tous les \n.
Je reçois les mails instantanément.
Du coup je reçois les données tout en bloc autour de l'adresse mail. Je ne peux pas les séparer. Le bloc entier est un hyperlien.
J'ai don remis un "\n" sur la dernière ligne. Mais rebelote: parse error.
Comment séparer mes données?
D'autre part, comment "rapatrier" aussi le texte d'une zone de texte. Tout ce qui est entre balise textarea n'apparait pas (name=comment dans le code).

Pulgita

Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3

Publié : 07 déc. 2006, 20:25
par Ymai
Sorry, je me suis mal exprimé.
Les \n pouvaient rester. C'est bien le symbole de l'opération d'ajout à la variable qui faisait la différence, et seulement lui.
.= au lieu de =

Code : Tout sélectionner

$message .= $np."\n";
serait donc parfait.

Le textarea doit se laisser faire comme les autres.
Serait-ce

Code : Tout sélectionner

name="comment" 
l'astuce? (les apostrophes)
N'y a-t-il pas de différence au niveau de la casse?
Un petit

Code : Tout sélectionner

echo $_POST['comment']
pour voir?

Publié : 08 déc. 2006, 09:01
par pulgita
Bonjour Ymai et à tous,

Ok pour le symbole. Ca marche!

Concernant textarea, ça ne marche toujours pas. Le test echo ne donne rien. J'ai vérifié la casse, elle est pareille.
J'ai revu mes "name" au cas où il y aurait conflit, niet.
Du côté des ' et des " je ne vois pas d'oubli. :?: :?:

Pulgita

Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3

Publié : 08 déc. 2006, 11:38
par Ymai
On peut voir le texte des deux pages:
1. la page du formulaire
2. la page d'envoi

Publié : 08 déc. 2006, 13:52
par pulgita
voici,

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html
 lang="fr-fr"><head><meta content="text/html; charset=ISO-8859-1"
 http-equiv="content-type"><title>questionnaire</title><meta
 content="Carmelo" name="author"><link media="screen" rel="stylesheet"
 href="css/strategia2.css" type="text/css"><!--[if lte IE6]><link href="css/iecss.css" rel="stylesheet" type="text/css" /><![endif]--></head>
<body style="color: rgb(102, 102, 102); background-color: rgb(0, 0, 0);"
 alink="#ffff00" link="#666666" vlink="#ffffff"><div id="conteneur"><div
 id="page"><div id="remerci">Je vous remercie pour
l'int&eacute;r&ecirc;t que vous portez &agrave; Strategia Consulting.
Remplissez ce formulaire et je vous contacterai le plus vite
possible.&nbsp;</div><div style="left: 0px; width: 114px;" id="question">Nom
:<br>Pr&eacute;nom :<br>Fonction
:<br>Soci&eacute;t&eacute;
:<br>T&eacute;l&eacute;phone :<br>E-mail : </div><div id="formul"><form
 method="post" action="envoi.php" name="formulaire"><input name="nom"><br><input
 name="prenom"><br><input name="fonction"><br><input name="societe"><br><input
 name="telephone"><br><input name="mail"><br><input name="VALID"
 value="OK" type="submit"> &nbsp; <input value="annulation"
 type="reset"></form></div><div id="comm">Commentaires<br><form
 method="post" action="envoi.php" name="commentaire"><textarea cols="42"
 rows="7" name="comment"></textarea><br></form><br></div><img
 style="width: 250px; height: 94px;" id="logo" alt="logo"
 src="images/logo-B-250.gif"></div><div id="nav"><ul id="menu"><li
 id="accueil"><a href="index">ACCUEIL</a></li><li id="conseil"><a
 href="conseil.html">CONSEIL</a><ul id="submenu"><li><a
 href="strategie.html">STRATEGIE</a></li><li><a href="marketing.html">MARKETING</a></li></ul></li><li
 id="coaching"><a href="coaching.html">COACHING</a></li><li id="cg"><a
 href="carmelo.html">CARMELO
GIMENEZ</a></li><li id="contact"><a id="cont" href="#">CONTACTEZ-MOI</a></li></ul></div><div
 id="mention"><a href="#">mentions
l&eacute;gales</a></div></div></body></html>
et

Code : Tout sélectionner

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html
 lang="fr-fr"><head><meta
 content="text/html; charset=ISO-8859-1" http-equiv="content-type"><title>envoi</title><!--[if lte IE6]><link href="css/iecss.css" rel="stylesheet" type="text/css" /><![endif]--></head>
<body
 style="color: rgb(102, 102, 102); background-color: rgb(255, 255, 255);"
 ;="" alink="#ffff00" link="#666666" vlink="#ffffff"><br><?php $n = htmlentities($_POST['nom']);
echo "Votre nom est $n <br />";
$p = htmlentities($_POST['prenom']);
$co = htmlentities($_POST['comment']);
$f = htmlentities($_POST['fonction']);
$s = htmlentities($_POST['societe']);
$m = htmlentities($_POST['mail']);
$t = htmlentities($_POST['telephone']);
echo "Votre telephone est $t <br />";
echo "Votre mail est $m <br />";
echo "Votre prénom est $p <br />";
echo "Vous êtes $f <br />";
echo "Chez $s <br />";
echo "Vos commentaires $co <br />";
$message .= $n."\n";
$message .= $p."\n";
$message .= $s."\n";
$message .= $m."\n";
$message .= $t."\n";
$message .= $co."\n";
mail ("moi@wanadoo.fr", "Sondage", $message, "From: $n");
echo "Votre avis vient de m'être envoyé <br />";
?></body></html>
Pulgita

Message envoyé avec : Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

Publié : 08 déc. 2006, 22:42
par Ymai
Il y a clairement deux formulaires différents dont seul le premier est envoyé:

Code : Tout sélectionner

<form method="post" action="envoi.php"
 name="formulaire"><input name="nom"><br>
  <input name="prenom"><br>
  <input name="fonction"><br>
  <input name="societe"><br>
  <input name="telephone"><br>
  <input name="mail"><br>
  <input name="VALID" value="OK" type="submit">
&nbsp; <input value="annulation" type="reset"></form>
</div>
<div id="comm">Commentaires<br>
<form method="post" action="envoi.php"
 name="commentaire"><textarea cols="42" rows="7"
 name="comment"></textarea><br>
</form>
Le champ "comment" se trouve dans le deuxième formulaire...

Publié : 09 déc. 2006, 08:49
par Invité
Bonjour ,

oui Ymai. De plus "textarea" n'est pas dans un "Form". Donc l'envoi ne peut pas être pris en compte.
Ma difficulté sera donc de placer mon "textarea" dans le Form mais à un autre endroit que la suite des différents "input".
Peut-être dans un div que je place où je veux? :?:
Merci beaucoup pour ta patience.
Pulgita

Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3

Publié : 09 déc. 2006, 09:11
par Ymai
Bonjour
Tant qu'il est entre <form> et </form>, c'est bon.

Publié : 09 déc. 2006, 12:12
par pulgita
Ok. Je ferais le nécessaire lundi et je donnerai le résultat de la modif.
Merci

Pulgita

Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3

Reception données formulaire: Résolu

Publié : 09 déc. 2006, 18:01
par pulgita
Bonsoir,

J'ai pu malgré tout faire la modif aujourd'hui en insérant le "textarea" dans la balise "form". ça marche. :D
:arrow: affaire résolue.

Merci

Pulgita


Message envoyé avec : Mozilla/5.0 (Macintosh; U; PPC Mac OS X; fr) AppleWebKit/418.9 (KHTML, like Gecko) Safari/419.3