Probleme de récupération des variables d'une page à l'autre

Probleme de récupération des variables d'une page à l'autre - PHP - Programmation

Marsh Posté le 17-02-2004 à 18:14:29    

Voilà,
je sais pas si j'ai mal configuré mon serveur Apache (installé EasyPHP 1.7 avec tout par défaut et rien touché depuis, donc a priori non), mais voila mon probleme :
 
PHP ne reconnait pas les variables $var1,$var2... qu'il est censé reconnaitre.
 
Je fais un formulaire renvoyant sur une page nommée ajoute.php
 
avec donc le code suivant :

<form method="post" action="ajoute.php">


 
et dans le formulaire plen d'items comme celui-ci :
 

<input type="text" name="login" maxlength="255">


 
Si j'ai bien compris, ma page ajoute.php est appelée lors du clic sur le bouton Envoyer et il se crée alors autant de variables qu'il y a d'items dans le formulaire.
Je dois donc avoir une variable nommée $login dont la valeur est celle entrée par l'utilisateur dans la page précédente.
 
ben non !
 

Citation :

Notice: Undefined variable: login in c:\program files\[...]\ajoute.php on line 20


 
 
Je suis obligé d'ajouter

$login=$HTTP_POST_VARS["login"];

au début de mon script pour que ça marche, et faire de meme pour toutes les variables [:icon9]
 
Une idée pour rétablir la situation normale ?


Message édité par drkarma le 17-02-2004 à 18:15:24
Reply

Marsh Posté le 17-02-2004 à 18:14:29   

Reply

Marsh Posté le 17-02-2004 à 18:35:49    

Reply

Marsh Posté le 17-02-2004 à 18:39:11    

J'ai découvert ça il y a très peu de temps...
 
Essaie avec $_POST['var1'] plutot que $var1.
 
C'est plus chiant au niveau de l'écriture mais c'est plus sécurisé (pas moyen de baiser une variable POST avec une en GET).

Reply

Marsh Posté le 17-02-2004 à 18:46:38    

Merci. Je connais $_POST mais c'est tout aussi chiant a écrire.
Je voudrais bien savoir pourquoi chez tout le monde ça marche et pas chez moi :cry:

Reply

Marsh Posté le 17-02-2004 à 20:04:42    

Jette un oeil du coté de ton php.ini.
 
Si register_globals est à Off, alors tu es obligé d'appeler tes variables en faisant $POST, $_GET, ...
Passe register_globals à On pour pouvoir faire de l'accès direct comme tu l'as écrit dans ton code.

Reply

Marsh Posté le 17-02-2004 à 20:19:58    

register_globals à Off : c'est pour entre autre des questions de sécurité, il vaut donc mieux le laisser comme cela

Reply

Marsh Posté le 17-02-2004 à 20:39:49    

ah oui effectivement c'est a off.
t509->tu peux développer ?

Reply

Marsh Posté le 17-02-2004 à 20:45:34    

Reply

Marsh Posté le 17-02-2004 à 20:47:25    

ben si tu laisse register_globals à On et que tu sécurise un site par un cookie que tu appelle login par exemple. Regarde :
 
Qaund l'utilisateur s'authentifie, tu met un cookie "AUTHENTIFY" à "TRUE". Si register_globals est à On , je prend une des URL et je rejoute la bonne chose au bon endroit pour foirer ta sécurité :
http://......./page.php.AUTHENTIFY=TRUE
Je rentre sur ton site, je me suis pas authentifié.
 
Ce truc là est pas possible avec register_globals à false, car ton code test $_COOKIE['AUTHENTIFY'] (qui est différent de $_GET['AUTHENTIFY']) et non pas $AUTHENTIFY.
 
Tu vois ou j'ai voulu en venir ?

Reply

Marsh Posté le 17-02-2004 à 21:28:31    

bon ben register_globals on ou off ca change rien  :cry:  
 
 

Notice: Undefined variable: pays in c:\program files\[...]\ajoute.php on line 19


 
 

Reply

Marsh Posté le 17-02-2004 à 21:28:31   

Reply

Marsh Posté le 17-02-2004 à 21:46:54    

Je crois que depuis le 1.7 tu es obliger d'utiliser $_post['variable']
 
a confirmer...

Reply

Marsh Posté le 17-02-2004 à 22:07:19    

Vérifie ta syntaxe à la ligne 19 et au dessus

Reply

Marsh Posté le 17-02-2004 à 23:04:57    

t509 a écrit :

Vérifie ta syntaxe à la ligne 19 et au dessus


 
deja fait...
 
au cas ou je coderais comme un manche g essayé avec des scripts tout prets pris sur comscripts.com, c pareil :(


Message édité par drkarma le 17-02-2004 à 23:05:05
Reply

Marsh Posté le 17-02-2004 à 23:07:53    

Balance voir ton code qu'on puisse jeter un oeil

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed