7.6.2 Variables pré-définies
7.6 Mots réservés en PHP
7 Annexes
Manuel PHP
->Variables de serveur : $_SERVER . Variables d'environnement : $_ENV . HTTP Cookies : $_COOKIE . HTTP GET variables : $_GET . HTTP POST variables : $_POST . Variable de téléchargement de fichier via HTTP : $_FILES . Variables de requête : $_REQUEST . Session variables : $_SESSION . Variables globales : $GLOBALS . Le dernier message d'erreur : $php_errormsg
|
7.6.2.1 Variables de serveur : $_SERVER
Note |
Introduite en 4.1.0. Dans les versions plus anciennes, elle s'appelait
$HTTP_SERVER_VARS
.
|
$_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.
Cette variable est une 'superglobal', ou globale automatique.
Cela signifie qu'elle est simplement disponible dans tous les
contextes d'exécution (fonctions ou méthodes). Vous n'avez pas
besoin de faire
global $_SERVER;
pour y accéder, comme
vous le faisiez avec
$HTTP_SERVER_VARS
.
$HTTP_SERVER_VARS
contient les mêmes
informations, mais n'est pas autoglobale. (Notez que
$HTTP_SERVER_VARS
et
$_SERVER
sont des variables différentes et que PHP les traite en tant que tel)
Si la directive register_globals
est active, alors ces variables seront aussi rendues directement
accessible dans le contexte d'exécution global. C'est à dire séparément
des tableaux
$_SERVER
et
$HTTP_SERVER_VARS
.
Pour plus d'informations sur la sécurité de cette configuration, voyez le
chapitre Utiliser la directive Register
Globals . Ces variables globales individuelles ne sont pas des globales.
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ées 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_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, s'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 navigateur 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.
- '
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 fichier (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
ne doit exister seulement
si la variable
PATH_INFO
est définie.
Les utilisateurs d'Apache 2 devrait utiliser
AcceptPathInfo = On
au lieu de
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.html
'.
- '
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.
|