Pourquoi mon tableau $_ENV est-il vide et pourquoi les variables d'environnement apparaissent-elles dans $_SERVER ?

Mary-Kate Olsen
Libérer: 2024-11-08 09:45:02
original
822 Les gens l'ont consulté

Why is my $_ENV array empty and why are environment variables appearing in $_SERVER?

Pourquoi une variable $_ENV vide et des apparitions mystérieuses de $_SERVER ?

Dans ce problème PHP déroutant, les utilisateurs rencontrent un tableau $_ENV vide malgré définir des variables d'environnement dans leur fichier .htaccess. De plus, les variables apparaissent inexplicablement dans le tableau $_SERVER d'une manière apparemment dupliquée.

Racine du problème :

  1. $ _ENV est masqué par défaut :

    • directive variables_order de php.ini, généralement défini sur « GPCS », exclut « E » (ENV) par défaut. La modification de ce paramètre en "EGPCS" active $_ENV.
  2. Les variables SetEnv atterrissent dans $_SERVER :

    • Définition de l'environnement les variables utilisant SetEnv dans .htaccess les placent dans le tableau $_SERVER, pas dans $_ENV.

La mystérieuse duplication :

  • Les variables apparaissent deux fois dans $_SERVER ([REDIRECT_FOO] et [ FOO]), car Apache préfixe le nom de la variable d'origine avec REDIRECT_ si elle provient du environnement.

Solution alternative :

  • La fonction getenv() n'est pas affectée par le paramètre php.ini et renvoie toujours la valeur correcte, quel que soit de cas sensibilité.

Résumé :

Comprendre ces paramètres et ces différences de comportement permet de percer le mystère de la raison pour laquelle $_ENV peut être vide et pourquoi les variables d'environnement se retrouvent dans $ _SERVEUR. N'oubliez pas de modifier variables_order si vous avez besoin de remplir $_ENV et d'utiliser getenv() pour une récupération fiable des variables d'environnement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal