Probleme de récupération des variables d'une page à l'autre - PHP - Programmation
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).
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
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.
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
Marsh Posté le 17-02-2004 à 20:39:49
ah oui effectivement c'est a off.
t509->tu peux développer ?
Marsh Posté le 17-02-2004 à 20:45:34
Tout est écrit là
http://fr.php.net/manual/fr/config [...] ctives.php
http://fr.php.net/manual/fr/securi [...] lobals.php
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 ?
Marsh Posté le 17-02-2004 à 21:28:31
bon ben register_globals on ou off ca change rien
Notice: Undefined variable: pays in c:\program files\[...]\ajoute.php on line 19 |
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...
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
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 !
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
Une idée pour rétablir la situation normale ?
Message édité par drkarma le 17-02-2004 à 18:15:24