loulipo a écrit :
Or je me suis aperçu tout d'un coup que cela ne fonctionnait plus...
|
Si t'as rien modifié dans ton script, alors cela vient de ton serveur.
Il est possible qu'ils soient passés en serveur "sécurisé" où les variables extèrieures à un script (comme venant d'un formulaire par exemple) ne sont plus accessible directement par leur nom.
Je m'explique
Avant, tu crééais un formulaire de ce style
Code :
- <FORM method="post" action="toto.php">
- Entrez votre nom: <INPUT type="text" name="nom"><BR>
- <INPUT type="submit" value="Envoyer">
- </FORM>
|
Et dans le script php, tu récupérais directement la variable "$nom" venant du "name=nom" du formulaire.
Cette méthode a été considérée dangereuse car imagine que "toto.php" fasse ce genre de test
Code :
- if ($nom == "machin" )
- $ok=true;
- <...>
- if ($ok)
- {
- // Accès autorisé
- <...>
- }
|
Tu peux aisément te rendre compte que c'est une méthode de contrôle bien foireuse mais tout le monde n'est pas forcément pro. Et rien n'empêche d'appeler maintenant "toto.php?ok=true" !!!
Donc il a été recommandé de verrouiller le flag qui autorise un script à recevoir des variables venant directement depuis l'extèrieur. Et il est possible que ton serveur soit passé à "off".
Pour les formulaires, les variables sont maintenant stockées dans un tableau associatif portant le nom de la méthode. Donc si tu veux récupérer une variable "nom" passée par un formulaire en méthode "post", tu fais:
$var=$_POST["nom"]
Si ta variable vient d'un formulaire en méthode "get" ou simplement d'un paramètre URL (style "toto.php?nom=machinTruc" ), tu fais:
var=$_GET["nom"]
Si ta variable doit arriver indifféremment via une méthode "post" ou "get", tu fais:
$var=$_REQUEST["nom"]
En rajoutant en fin de script un petit "phpinfo()", tu verras mieux s'il s'agit bien de cela. Si c'est le cas, toutes les variables dites "globales" auront disparues et remplacées par des tableaux (ex: $REMOTE_ADDR sera devenu $_SERVER["REMOTE_ADDR"]) etc...
Message édité par Sve@r le 04-07-2006 à 16:21:02
---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.