PHP - Les variables d'environnement

D├ęcembre 2016

Notion de variable d'environnement


Les variables d'environnement sont, comme leur nom l'indique, des données stockées dans des variables permettant au programme d'avoir des informations sur son environnement. L'environnement, dans le cas du script PHP est :

  • Le serveur
  • Le client



Ces variables sont créées par le serveur à chaque fois que le script PHP est appelé, le serveur les lui fournit en paramètres cachés lors de l'exécution de l'interpréteur.

Elles permettent notamment d'avoir des informations sur le type de serveur, son administrateur, la date à laquelle le script a été appelé, l'adresse IP et le type de navigateur du client,...

Les variables d'environnement


On peut donc classer les variables d'environnement en deux catégories :

  • Les variables d'environnement dépendant du client
  • Les variables d'environnement dépendant du serveur

Les variables d'environnement dépendant du client



Variable d'environnementDescription
$_SERVER['AUTH_TYPE']Il s'agit de la méthode d'authentification qui a été utilisée par le client pour accéder au script PHP
$_SERVER['COMSPEC']Location de l'interpréteur de commandes sur la machine (Sous Windows)
$_SERVER['CONTENT_TYPE']Type de données contenu présent dans le corps de la requête. Il s'agit du type MIME des données
$_SERVER['DOCUMENT_ROOT']Racine des documents sur le serveur
$_SERVER['DOCUMENT_URI']Adresse du script PHP en relatif (à partir de la racine du serveur)
$_SERVER['HTTP_ACCEPT']Types MIME reconnus par le serveur (séparés par des virgules)
$_SERVER['HTTP_ACCEPT_ENCODING']Types d'encodage que le serveur peut réaliser (gzip,deflate)
$_SERVER['HTTP_ACCEPT_LANGUAGE']Langue utilisée par le serveur (par défaut en-us)
$_SERVER['HTTP_CONNECTION']Type de connexion ouverte entre le client et le serveur (par exemple Keep-Alive)
$_SERVER['HTTP_HOST']Nom d'hôte de la machine du client (associée à l'adresse IP)
$_SERVER['HTTP_REFERER']URL de la page qui a appelé le script PHP
$_SERVER['HTTP_USER_AGENT']Cette variable permet d'avoir des informations sur le type de navigateur utilisé par le client, ainsi que son système d'exploitation. Voici quelques exemples de User-Agents :
  • Mozilla/4.0 (compatible;
MSIE 5.01; Windows NT; TUCOWS Network)
  • Mozilla/4.7 [en] (X11;
I; Linux 2.2.14-15mdk i686)
$_SERVER['LAST_MODIFIED']Date et heure de dernière modification du fichier
$_SERVER['PATH']Il s'agit du chemin d'accès aux différents répertoires sur le serveur
$_SERVER['PATH_INFO']Il s'agit du chemin d'accès au script PHP en relatif (de la racine du serveur jusqu'au script PHP)
$_SERVER['PHP_SELF']Nom du script PHP
$_SERVER['REDIRECT_STATUS']Il s'agit de l'état de la redirection (echec ou succès)
$_SERVER['REDIRECT_URL']Il s'agit de l'URL vers laquelle le navigateur du client a été redirigé
$_SERVER['QUERY_STRING']Il s'agit de la partie de l'URL (ayant servi à accéder au script PHP) située après le point d'interrogation. C'est de cette manière que sont transmises les données d'un formulaire dans le cas de la méthode GET
$_SERVER['REMOTE_ADDR']Cette variable contient l'adresse IP du client appelant le script CGI
$_SERVER['REMOTE_PORT']Cette variable permet de savoir le port sur lequel la requête HTTP a été envoyée au serveur
$_SERVER['SCRIPT_FILENAME']Chemin d'accès complet au script PHP
  • Sous windows, il sera de la forme :

c:/php/php.exe
$_SERVER['SCRIPT_NAME']Chemin d'accès relatif (par rapport au chemin d'accès à la racine web ($DOCUMENT_ROOT)) au script PHP

Les variables d'environnement dépendant du serveur



Variable d'environnementDescription
$_SERVER['DATE_GMT']Date actuelle au format GMT
$_SERVER['DATE_LOCAL']Date actuelle au format local
$_SERVER['DOCUMENT_ROOT']Racine des documents Web sur le serveur
$_SERVER['GATEWAY_INTERFACE']Version des spécifications CGI utilisées par le serveur
$_SERVER['$HTTP_HOST']Nom de domaine du serveur
$_SERVER['SERVER_ADDR']Adresse IP du serveur
$_SERVER['SERVER_ADMIN']Adresse de l'administrateur du serveur
$_SERVER['SERVER_NAME']Nom donné au serveur en local
$_SERVER['SERVER_PORT']Numéro de port associé au protocole HTTP sur le serveur
$_SERVER['SERVER_PROTOCOL']Nom et version du protocole utilisé pour envoyer la requête au script PHP
$_SERVER['SERVER_SOFTWARE']Type (logiciel) du serveur web
  • Pour un serveur Apache sous Unix :

Apache/1.3.2 (Unix) PHP/3.0.5
  • Pour un serveur Apache sous Windows :

Apache/1.3.2 (Win32) PHP/3.0.5

Affichage des variables d'environnement


Il est possible de créer un script permettant de visualiser l'ensemble des variables d'environnement.

La première façon consiste à utiliser la fonction phpinfo() qui affiche toute seule un tableau récapitulatif des paramètres du serveur et de l'intepréteur PHP, ainsi qu'un tableau des variables d'environnement

<?
phpinfo();

?>

PHP fournit la fonction getenv() permettant de retourner la valeur de la variable d'environnement passée en paramètre :
<?
echo getenv("HTTP_USER_AGENT");

?>

Il est aussi posible de faire comme suit (ici, pour récuprér l'user agent du navigateur du visiteur) :
<?php
echo $_SERVER['HTTP_USER_AGENT'];
?>


Enfin il est possible de définir des variables d'environnement :
<?
echo putenv("MA_VARIABLE=mavaleur");

?>


A voir également :

Ce document intitulé «  PHP - Les variables d'environnement  » issu de CommentCaMarche (www.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.