Question Pourquoi le tableau PHP $ _REQUEST est-il vide?


J'ai installé nginx sur Ubuntu Hardy et je me suis immédiatement rendu compte que les scripts PHP recevaient des tableaux de requêtes vides, c.-à-d. Que rien ne vienne à GET ou POST, même le tableau $ _REQUEST était vide.

Quand je suis revenu à Apache, tout allait bien.

La version d'installation de nginx est 0.6.35-0ubuntu1.1 ~ hardy1 et PHP est la version 5.2.4-2ubuntu5.10 de PHP.

Quel pourrait être le problème?


5
2017-08-16 15:36


origine


Utilisez-vous des règles de réécriture ou de redirection? - ircmaxell
Non, il n'y a pas de réécriture ou de redirection - vfclists


Réponses:


Vérifiez si ceci est défini dans votre section "emplacement" pour votre module fastcgi

 fastcgi_param  QUERY_STRING     $query_string;

http://wiki.nginx.org/NginxHttpFcgiModule


4
2017-08-16 19:44



Je désactive l'inclusion du fichier de base fastcgi_params, car je ne savais pas comment il serait nécessaire. Cela vaut la peine d'apprendre cependant. - vfclists


C'est une caractéristique de la try_files command en nginx que le query_string n'est pas transmis automatiquement au fichier réécrit, mais doit être explicitement passé. À cause de ce _$SERVER['QUERY_STRING'] est toujours vide, et donc les variables $_REQUEST et $_GET ne sont pas non plus définis.

Du Documentation Nginx:

Contrairement à la réécriture, $ args ne sont pas automatiquement conservés si le   fallback n'est pas un emplacement nommé. Si vous avez besoin d'arguments préservés, vous devez   faites-le explicitement:

try_files $uri $uri/ /index.php?q=$uri&$args;

ou avec juste les arguments

try_files $uri $uri/ /index.php?$args;

Si vous voulez vous assurer d’obtenir les arguments originaux, utilisez $query_string qui est le même que $args excepté $query_string est en lecture seule.


6
2017-12-11 06:55





Essayez de vérifier le variables_order dans le fichier de configuration php utilisé par nginx.


0
2017-08-16 15:55



Variables_order est EGPCS. Il est réglé sur la valeur par défaut - vfclists