$_SERVER
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER — Variables de serveur et d'exécution
Description
$_SERVER est un tableau contenant des informations
telles que les en-têtes, les chemins et les emplacements de script.
Les entrées de cet array sont créées par le serveur web, il n'y a donc aucune
garantie que chaque serveur web fournira chacune de ces informations ;
les serveurs peuvent en omettre certaines ou en fournir d'autres qui ne sont pas répertoriées ici.
Cependant, la plupart de ces variables sont prises en compte dans la spécification
» CGI/1.1 et sont susceptibles d'être définies.
Note:
Lorsque PHP est exécuté en ligne de commande command line
, la plupart de ces entrées ne seront pas disponibles ou n'auront aucun sens.
En plus des éléments énumérés ci-dessous, PHP créera des éléments supplémentaires
avec des valeurs provenant des en-têtes de requête. Ces entrées seront nommées
HTTP_
suivi du nom de l'en-tête,
en majuscules et avec des traits de soulignement au lieu des tirets.
Par exemple, l'en-tête Accept-Language
sera
disponible sous la forme $_SERVER['HTTP_ACCEPT_LANGUAGE']
.
Indices
-
'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://example.com/foo/bar.php
sera /foo/bar.php.
La constante __FILE__
contient le chemin complet ainsi que le nom du fichier (i.e. inclus) courant.
Si PHP fonctionne en ligne de commande,
cette variable contient le nom du script.
-
'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.
Par exemple
'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.
Note:
Sous Apache 2, UseCanonicalName = On
et
ServerName
doivent être définis.
Sinon, cette valeur reflète le nom d'hôte fourni par le client, qui peut être falsifié.
-
'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 ; par exemple
HTTP/1.0
;
-
'REQUEST_METHOD'
-
Méthode de requête utilisée pour accéder à la page ;
par exemple
GET
, HEAD
,
POST
, PUT
.
Note:
Le script PHP se termine après avoir envoyé les en-têtes (c'est à dire après
avoir produit n'importe quelle sortie sans bufferisation de sortie) si
la méthode de la requête était HEAD
.
-
'REQUEST_TIME'
-
Le temps Unix du début de la requête.
-
'REQUEST_TIME_FLOAT'
-
Le timestamp du début de la requête, avec une précision à la
microseconde.
-
'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.
-
'HTTPS'
-
Défini à une valeur non-vide si le script a été appelé 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:
Le serveur Web doit être configuré pour créer cette variable.
Par exemple, dans Apache, HostnameLookups On
doit être défini
à l'intérieur de httpd.conf pour qu'il existe. Voir aussi
gethostbyaddr().
-
'REMOTE_PORT'
-
Le port utilisé par la machine cliente pour communiquer
avec le serveur web.
-
'REMOTE_USER'
-
L'utilisateur authentifié.
-
'REDIRECT_REMOTE_USER'
-
L'utilisateur authentifié si la requête a été redirigée en interne.
-
'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é.
Note:
Sous Apache 2, UseCanonicalName = On
, ainsi que
UseCanonicalPhysicalPort = On
doivent être définis
pour obtenir le port physique réel, sinon cette valeur peut être
falsifiée et elle peut ou non retourner la valeur du port physique.
-
'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:
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.html
'.
-
'PHP_AUTH_DIGEST'
-
Lorsque vous utilisez l'authentification 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 l'authentification HTTP,
cette variable est définie à l'utilisateur fourni par l'utilisateur.
-
'PHP_AUTH_PW'
-
Lorsque vous utilisez l'authentification HTTP,
cette variable est définie au mot de passe fourni par l'utilisateur.
-
'AUTH_TYPE'
-
Lorsque vous utilisez l'authentification HTTP,
cette variable est définie au type d'identification.
-
'PATH_INFO'
-
Contient les informations sur le nom du chemin fourni par le client
concernant le nom du fichier exécutant le script courant, sans
la chaîne relative à la requête si elle existe. Actuellement,
si le script courant est exécuté via l'URI
http://www.example.com/php/path_info.php/some/stuff?foo=bar,
alors la variable $_SERVER['PATH_INFO'] contiendra
/some/stuff
.
-
'ORIG_PATH_INFO'
-
Version originale de 'PATH_INFO' avant d'être analysée
par PHP.
Exemples
Exemple #1 Exemple avec $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
Résultat de l'exemple ci-dessus est similaire à :
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.