Précédent   Forum des professionnels en informatique > PHP > Outils > WAMP
WAMP Forum d'entraide sur WAMP (Windows Apache MySQL PHP) : installation, utilisation, etc.
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 11/06/2006, 00h42   #1
Membre habitué
 
Inscription : mai 2002
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 317
Points : 142
Points : 142
Par défaut Récupération des données

Bonjour,

J'ai un petit problème, je n'arrive pas à récupérer les données d'un formulaire à partir d'un script php...
(J'ai un site sur Online.net et là tout se passe bien, mais le problème suivant est sur un site hébergé chez Amen.fr)

Voici l'exemple que j'ai testé :

Page1.htm (formulaire)
--------------------------------
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>    
  <form method="post" action="page2.php">
    <p>Votre nom :<br>
    <input type="text" name="strNom" size="40"><br>
    </p>
    <input type="submit" name="Submit" value="Envoyer">
  </form>  
</body>
</html>

Page2.php (récupération données formulaire)
---------------------------------------------------------------
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
 
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
 
<body>
<?
$strEssai = "fin";
echo "Votre nom = $strNom  fin = $strEssai";
?>
</body>
</html>
La variable strEssai est bien visible dans la page 2, mais la variable strNom est vide, bien que j'ai rempli le champ strNom dans le formulaire...

Vous auriez une idée pourquoi je ne récupère pas la valeur de strNom ?
Kaji est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2006, 00h47   #2
Inactif
 
Avatar de Kerod
 
Inscription : septembre 2004
Messages : 11 753
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 11 753
Points : 14 585
Points : 14 585
Tu devrais plutot mettre :
Code :
1
2
3
4
<?
$strEssai = "fin";
echo "Votre nom = ".$_POST['strNom']." fin = ".$strEssai;
?>
Kerod est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2006, 10h18   #3
Membre éclairé
 
Avatar de edno
 
Homme Grégory H.
Consultant-Formateur Tests Logiciels
Inscription : décembre 2002
Messages : 156
Détails du profil
Informations personnelles :
Nom : Homme Grégory H.
Âge : 30
Localisation : France

Informations professionnelles :
Activité : Consultant-Formateur Tests Logiciels

Informations forums :
Inscription : décembre 2002
Messages : 156
Points : 308
Points : 308
Juste un petit mot pour compléter la solution de Kerod

Ton problème vient du fait que sur Online, le paramètre de configuration PHP register_globals était activé ce qui a pour conséquence de rendre directement disponible les paramètres sous la forme $nom_parameter
Or il est recommandé de désactiver ce paramètre et c'est aujourd'hui le cas sur la majorité des hébergeurs, dans ton cas Amen, et c'est aussi le paramètrage fournit par les logiciels WAMP.
Il est donc recommander d'utiliser les variables superglobales ($_GET, $_POST, $_FILES, $_SESSION, $_COOKIE...)

Une solution rapide pour retrouver un comportement similaire au paramètre register_globals=on est d'utiliser un code du type :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<?php
 
$ArrayList = array('_GET', '_POST','_SESSION');
foreach($ArrayList as $gblArray) {
if( isset(${$gblArray}) )  {
	 $keys = array_keys(${$gblArray});
	 foreach($keys as $key) @$$key = stripslashes(trim(${$gblArray}[$key]));
	} 
}
 
?>
__________________
Qui a dit impossible ? C'est juste un peu plus compliqué.
edno est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/06/2006, 15h06   #4
Membre habitué
 
Inscription : mai 2002
Messages : 317
Détails du profil
Informations forums :
Inscription : mai 2002
Messages : 317
Points : 142
Points : 142
Par défaut Ok

Merci, ça marche bien.

En fait, j'avais besoin de renvoyer tous les champs d'un formulaire pas mail, et j'ai trouvé l'astuce suivante pratique :

Code :
1
2
3
4
5
 
$strMessage = "";
while (list($key, $val) = each($HTTP_POST_VARS)) {
  $strMessage .= "$key : $val\n";
}
Merci en tous cas !
Kaji est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h22.


 
 
 
 
Partenaires

Hébergement Web