Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 19/02/2007, 15h45   #1
Invité régulier
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 7
Points : 7
Par défaut Variables de formulaire et transmission par e-mail

bonjour,

Je voudrais récupérer, par mail ,les données de champs d'un formulaire d'une page HTML
Je programme le traitement de mon formulaire par un script PHP.
Mais en hebergement chez Free , je ne parviens pas à recuperer les données entrées par l'utilsateur.
(J'ai fait un essai chez un autre herbergeur et ça marche)
La fonction MAIL de mon script PHP fonctionne mais seules les constantes me parviennent et pas les variables entrées dans le formulaire par un utilisateur.

Voici le source de ma page HTML contenant le formulaire (contact.htm)
Cette page est traité par le scipt PHP du second fichier source : process.php
Les trois variables de champs que je n'arrive pas à recupérer sont nom,sexe et email

Code html :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<HTML>
<HEAD>
<TITLE>page de contact avec formulaire
</TITLE>
</HEAD>
<BODY BGCOLOR="#FDF5E6">
<B><FONT COLOR="#FF6600"><FONT SIZE=+3>PAGE
DE CONTACT </FONT>&nbsp;&nbsp;</FONT></B>
 
<!-- début du formulaire avec les paramétrages pour traitement par script PHP  -->
 
<FORM name='contact_par formulaire' action='process.php'  method='POST' >
 
<BR><B>&nbsp;</B>
 
<P><B><FONT COLOR="#3366FF">
<FONT SIZE=+1>Quel est votre nom ?</FONT></B>
 
<P><INPUT TYPE="text" NAME="nom" SIZE ="55" VALUE="" >
 
<P>
<HR WIDTH="100%">
 
<P><B><FONT COLOR="#3366FF">
<FONT SIZE=+1>Etes vous un homme ou une femme ?</FONT></B>
 
<P><INPUT TYPE="radio" NAME="sexe" VALUE="homme"><B><FONT COLOR="#000099">Homme</FONT></B>
 
<P><INPUT TYPE="radio" NAME="sexe" VALUE="femme"><B><FONT COLOR="#000099">Femme</FONT></B><B></B>
 
 
<HR WIDTH="100%">
 
<P><B><I><FONT COLOR="#000000"><FONT SIZE=+1>
<U>Entrez votre adresse email..</U>&nbsp;</FONT></I></B>
<INPUT TYPE="text" NAME="email">
<BR><B>&nbsp;</B>
 
<P><INPUT type="submit" name="  O K  " value=" ENVOI  ">
</FORM>
<!-- fin du formulaire -->
 
<HR>
</BODY>
</HTML>


Voici le source PHP du fichier process.php
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<HTML>
<HEAD>
<TITLE>traitement page de contact</title>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</HEAD>
<BODY BGCOLOR="#FFFFE0" TEXT="#000000">
 
<!-- début script php traitement page HTML de contacts  -->
<SCRIPT language="PHP">
 
$adresse="x@fai.net";
$from=$email;
$titre="recuperation donnees formulaire\n";
$data="mon nom est : $nom\n";
$data.="je suis un (ou une) : $sexe\n";
 
// teste execution correcte de la fonction MAIL
 
if (mail($adresse,$titre,$data,"From:$from"))
echo("<center><font color=green><br><br><br><h2>Vos reponses ont ete transmises .</h2></font><br>
</center>");
else
echo("<center><font color=red><br><br><br><h2>erreur de transmission </h2></font><br>");
</SCRIPT>
 
<!-- fin script php -->
 
</BODY>
</HTML>
rglot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 16h29   #2
Membre régulier
 
Avatar de csbilouze
 
Inscription : janvier 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2005
Messages : 79
Points : 93
Points : 93
Envoyer un message via MSN à csbilouze
salut,

alors déja les balises php sont <?php et ?>

de plus tu ne recupere pas les valeur de ton formulaire:
$sexe=$_POST['sexe'];
$nom=$_POST['nom'];
$mail=$_POST['mail'];

++
csbilouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h03   #3
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
Salut,
Citation:
de plus tu ne recupere pas les valeur de ton formulaire:
$sexe=$_POST['sexe'];
En effet, je crois que chez free (comme chez 99,99% des FAI) la fonction register_globals est à off...

Pour tester si tes variables ont une valeur, fais unS'il y a quelque chose, c'est que register_globals est à on, sinon c'est à off et il faut récupérer la valeur comme t'a montré csbilouze.

Code :
<SCRIPT language="PHP">
jamais vu ! Ca fonctionne ça?

Enfin, les balises HTML en majuscule, c'est mal
__________________
GAMIN !!!!
_______________________________________________
PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 17h12   #4
Membre régulier
 
Avatar de csbilouze
 
Inscription : janvier 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2005
Messages : 79
Points : 93
Points : 93
Envoyer un message via MSN à csbilouze
Adoptons une syntaxe stricte vive le xhtml ^^

EDIT:

je te conseillerai de mettre ton formulaire avec la meme page que le traitement.

ex:

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?php
if($envoie_formulaire==1){
 
  //traitement de ton formulaire.
  $mail=$_POST['mail'];
  //etc.....
 
  }//fin de if($active_formulaire==1)
 
echo "
      <form action=\"$PHP_SELF?envoie_formulaire=1\" method=\"post\">
 
        ton formulaire
 
      </form>
      ";
?>
csbilouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 19h37   #5
Invité régulier
 
Inscription : février 2007
Messages : 17
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 17
Points : 7
Points : 7
Par défaut ça fonctionne merci

Merci
ça fonctionne maintenant,il fallait effectivement récuperer mes variables avec $_POST['var'] alors qu'auparavant chez free il n'etait pas utile de mettre le $_POST .
Ce qui m'a troublé c'est que chez Club-Internet mes variables de formulaires sans le $_POST continuent d'etre recupérées mais plus chez Free !
Donc je pensais à une version differente de PHP entre les deux FAI,mais c'est plutot une configuration differente (pour les variables globales ou locales) qui les différencie

En revanche la syntaxe (un peu littéraire)
<SCRIPT language="PHP"> est tout à fait autorisée et fonctionne parfaitement !
rglot est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/02/2007, 19h49   #6
Membre régulier
 
Avatar de csbilouze
 
Inscription : janvier 2005
Messages : 79
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2005
Messages : 79
Points : 93
Points : 93
Envoyer un message via MSN à csbilouze
re,

Citation:
Envoyé par rglot
En revanche la syntaxe (un peu littéraire)
<SCRIPT language="PHP"> est tout à fait autorisée et fonctionne parfaitement !
c'est vrai? et c'est compatible avec tous les navigateurs???

Pour free, effectivement je me rappelle qu au debut je faisais comme toi, mais pourtant pas plus tard qu hier j ai fais un phpinfo et register_global est sur on

Citation:
Envoyé par phpinfo()
post_max_size 2M 2M
precision 14 14
register_argc_argv On On
register_globals On On
report_memleaks On On
safe_mode On On
csbilouze est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2007, 09h18   #7
Membre expérimenté
 
Avatar de mathieugamin
 
Inscription : octobre 2006
Messages : 572
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : octobre 2006
Messages : 572
Points : 562
Points : 562
Alors là, je suis sur le Q....

Register globals à on chez Free !
__________________
GAMIN !!!!
_______________________________________________
PHP 5.2 | Apache 2 | MySQL 5 | WinXP Pro | Mac OSX
mathieugamin est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h26.


 
 
 
 
Partenaires

Hébergement Web