(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
$_SERVER — Variables de serveur et d'exécution
$_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']
.
'CGI/1.1'
. Note: Sous Apache 2,
UseCanonicalName = On
etServerName
doivent être définis. Sinon, cette valeur reflète le nom d'hôte fourni par le client, qui peut être falsifié.
HTTP/1.0
; 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
.
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().
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.
'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 queUseCanonicalPhysicalPort = 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.
Note: Les utilisateurs d'Apache 2 devraient utiliser
AcceptPathInfo = On
dans leur httpd.conf pour définir PATH_INFO.
/index.html
'. "Authorization"
envoyé par le client (que vous devez donc utiliser pour réaliser la validation appropriée). /some/stuff
. Exemple #1 Exemple avec $_SERVER
<?php
echo $_SERVER['SERVER_NAME'];
?>
Résultat de l'exemple ci-dessus est similaire à :
www.example.com
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.