$_SERVER

$HTTP_SERVER_VARS [Obsol�te]

$_SERVER -- $HTTP_SERVER_VARS [Obsol�te]Variables de serveur et d'ex�cution

Description

$_SERVER est un tableau contenant des informations comme les en-t�tes, dossiers et chemins du script. Les entr�es de ce tableau sont cr��es par le serveur web. Il n'y a aucune garantie que tous les serveurs les rempliront tous ; certains en oublieront quelques-unes et en rajouteront de nouvelles non mentionn�es ici. Cependant, un grand nombre de ces variables fait partie des » sp�cifications CGI 1.1, et vous pouvez donc vous attendre � les retrouver.

$HTTP_SERVER_VARS contient les m�mes informations, mais n'est pas superglobale. (Notez que $HTTP_SERVER_VARS et $_SERVER sont des variables diff�rentes et que PHP les traite en tant que telles.)

Indices

Vous pouvez �ventuellement trouver les �l�ments suivants dans la variable $_SERVER. Notez que certains, n'auront pas de sens si vous utilisez PHP en ligne de commande.

'PHP_SELF'
Le nom du fichier du script en cours d'ex�cution, par rapport � la racine web. Par exemple, $_SERVER['PHP_SELF'] dans le script situ� � l'adresse http://www.monsite.com/test.php/foo.bar sera /test.php/foo.bar. La constante __FILE__ contient le chemin complet ainsi que le nom du fichier (i.e. inclut) courant. Si PHP fonctionne en ligne de commande, cette variable contient le nom du script depuis PHP 4.3.0. Dans les versions ant�rieures, cette variable n'�tait pas disponible.
'argv'
Tableau des arguments pass�s au script. Lorsque le script est appel� en ligne de commande, cela donne acc�s aux arguments, comme en langage C. Lorsque le script est appel� avec la m�thode GET, ce tableau contiendra la cha�ne de requ�te.
'argc'
Contient le nombre de param�tres de la ligne de commande pass�s au script (si le script fonctionne en ligne de commande).
'GATEWAY_INTERFACE'
Num�ro de r�vision de l'interface CGI du serveur : i.e. 'CGI/1.1'.
'SERVER_ADDR'
L'adresse IP du serveur sous lequel le script courant est en train d'�tre ex�cut�.
'SERVER_NAME'
Le nom du serveur h�te qui ex�cute le script suivant. Si le script est ex�cut� sur un h�te virtuel, ce sera la valeur d�finie pour cet h�te virtuel.
'SERVER_SOFTWARE'
Cha�ne d'identification du serveur, qui est donn�e dans les en-t�tes lors de la r�ponse aux requ�tes.
'SERVER_PROTOCOL'
Nom et r�vision du protocole de communication : i.e. 'HTTP/1.0';
'REQUEST_METHOD'
M�thode de requ�te utilis�e pour acc�der � la page; i.e. 'GET', 'HEAD', 'POST', 'PUT'.

Note: Le script PHP se termine apr�s avoir envoy� les en-t�tes (apr�s avoir produit n'importe quelle sortie sans avoir affich� le buffer) si la m�thode de la requ�te �tait HEAD.

'REQUEST_TIME'
Le temps Unix depuis le d�but de la requ�te. Disponible depuis PHP 5.1.0.
'QUERY_STRING'
La cha�ne de requ�te, si elle existe, qui est utilis�e pour acc�der � la page.
'DOCUMENT_ROOT'
La racine sous laquelle le script courant est ex�cut�, comme d�fini dans la configuration du serveur.
'HTTP_ACCEPT'
Contenu de l'en-t�te Accept: de la requ�te courante, s'il y en a une.
'HTTP_ACCEPT_CHARSET'
Contenu de l'en-t�te Accept-Charset: de la requ�te courante, si elle existe. Par exemple : 'iso-8859-1,*,utf-8'.
'HTTP_ACCEPT_ENCODING'
Contenu de l'en-t�te Accept-Encoding: de la requ�te courante, si elle existe. Par exemple : 'gzip'.
'HTTP_ACCEPT_LANGUAGE'
Contenu de l'en-t�te Accept-Language: de la requ�te courante, si elle existe. Par exemple : 'fr'.
'HTTP_CONNECTION'
Contenu de l'en-t�te Connection: de la requ�te courante, si elle existe. Par exemple : 'Keep-Alive'.
'HTTP_HOST'
Contenu de l'en-t�te Host: de la requ�te courante, si elle existe.
'HTTP_REFERER'
L'adresse de la page (si elle existe) qui a conduit le client � la page courante. Cette valeur est affect�e par le client, et tous les clients ne le font pas. Certains navigateurs permettent m�me de modifier la valeur de HTTP_REFERER, sous forme de fonctionnalit�. En bref, ce n'est pas une valeur de confiance.
'HTTP_USER_AGENT'
Contenu de l'en-t�te User_Agent: de la requ�te courante, si elle existe. C'est une cha�ne qui d�crit le client HTML utilis� pour voir la page courante. Par exemple : Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). Entre autres choses, vous pouvez utiliser cette valeur avec get_browser() pour optimiser votre page en fonction des capacit�s du client.
'HTTPS'
D�finissez � une valeur non-vide si le script n�cessite d'utiliser le protocole HTTPS.

Note: Noter que lors de l'utilisation de ISAPI avec IIS, la valeur sera off si la demande n'a pas �t� faite via le protocole HTTPS.

'REMOTE_ADDR'
L'adresse IP du client qui demande la page courante.
'REMOTE_HOST'
Le nom de l'h�te qui lit le script courant. La r�solution DNS inverse est bas�e sur la valeur de REMOTE_ADDR.

Note: Votre serveur web doit �tre configur� pour cr�er cette variable. Par exemple, pour Apache, vous devez ajouter la directive HostnameLookups On dans le fichier httpd.conf, pour que cette variable existe. Voyez aussi gethostbyaddr().

'REMOTE_PORT'
Le port utilis� par la machine cliente pour communiquer avec le serveur web.
'SCRIPT_FILENAME'

Le chemin absolu vers le fichier contenant le script en cours d'ex�cution.

Note: Si un script est ex�cut� avec le CLI, avec un chemin relatif, comme file.php ou ../file.php, $_SERVER['SCRIPT_FILENAME'] contiendra le chemin relatif sp�cifi� par l'utilisateur.

'SERVER_ADMIN'
La valeur donn�e � la directive SERVER_ADMIN (pour Apache), dans le fichier de configuration. Si le script est ex�cut� par un h�te virtuel, ce sera la valeur d�finie par l'h�te virtuel.
'SERVER_PORT'
Le port de la machine serveur utilis� pour les communications. Par d�faut, c'est "80". En utilisant SSL, par exemple, il sera remplac� par le num�ro de port HTTP s�curis�.
'SERVER_SIGNATURE'
Cha�ne contenant le num�ro de version du serveur et le nom d'h�te virtuel, qui sont ajout�s aux pages g�n�r�es par le serveur, si cette option est activ�e.
'PATH_TRANSLATED'
Chemin dans le syst�me de fichiers (pas le document-root) jusqu'au script courant, une fois que le serveur a fait une traduction chemin virtuel -> r�el.

Note: Depuis PHP 4.3.2, la variable PATH_TRANSLATED n'est plus seulement d�finie implicitement sous Apache 2 SAPI contrairement � la situation sous Apache 1 o� elle est d�finie avec la m�me valeur que la variable serveur SCRIPT_FILENAME lorsqu'elle n'est pas fournie par Apache. Ce changement a �t� effectu� pour �tre conforme aux sp�cifications CGI qui fait que la variable PATH_TRANSLATED doit exister seulement si la variable PATH_INFO est d�finie. Les utilisateurs d'Apache 2 devraient utiliser AcceptPathInfo = On dans leur httpd.conf pour d�finir PATH_INFO.

'SCRIPT_NAME'
Contient le nom du script courant. Cela sert lorsque les pages doivent s'appeler elles-m�mes. La constante __FILE__ contient le chemin complet ainsi que le nom du fichier (i.e. inclut) courant.
'REQUEST_URI'
L'URI qui a �t� fourni pour acc�der � cette page. Par exemple : '/index.php'.
'PHP_AUTH_DIGEST'
Lorsque vous utilisez PHP avec Apache en tant que module faisant une identification HTTP Digest, cette variable est d�finie dans l'en-t�te "Authorization" envoy� par le client (que vous devez donc utiliser pour r�aliser la validation appropri�e).
'PHP_AUTH_USER'
Lorsque vous utilisez PHP avec Apache ou IIS (ISAPI en PHP 5) en tant que module faisant une identification HTTP, cette variable est d�finie � l'utilisateur fourni par l'utilisateur.
'PHP_AUTH_PW'
Lorsque vous utilisez PHP avec Apache ou IIS (ISAPI en PHP 5) en tant que module faisant une identification HTTP, cette variable est d�finie au mot de passe fourni par l'utilisateur.
'AUTH_TYPE'
Lorsque vous utilisez PHP avec Apache en tant que module faisant une identification HTTP, cette variable est d�finie au type d'identification.

Historique

Version Description
4.1.0 Introduction de $_SERVER, rendant obsol�te $HTTP_SERVER_VARS.

Exemples

Exemple #1 Exemple avec $_SERVER

<?php
echo $_SERVER['SERVER_NAME'];
?>

L'exemple ci-dessus va afficher quelque chose de similaire � :

www.example.com

Notes

Note: Ceci est une 'superglobale', ou variable globale automatique. Cela signifie simplement que cette variable est disponible dans tous les contextes du script. Il n'est pas n�cessaire de faire global $variable; pour y acc�der dans les fonctions ou les m�thodes.