PHP cours tutorial
Variables de serveur $_SERVER
$_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.)
Vous pouvez éventuellement utiliser les éléments du tableau suivant dans la variable $_SERVER.
Notez que certains, n'auront pas de sens si vous utilisez PHP en ligne de commande.
Liste des variables du serveur
La liste suivante donne les variables qui sont référencées dans le tableau(array) superglobal $_SERVER.
- '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 donnera: /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.
Exemple: <?php
echo $_SERVER['PHP_SELF'];
?>
- '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.
Exemple: <?php
echo$_SERVER['argv'] ;
?>
- 'argc'
-
Contient le nombre de paramètres de la ligne de commande passés au script (si le script fonctionne en ligne de commande).
Exemple: <?php
echo$_SERVER['argc'] ;
?>
- 'GATEWAY_INTERFACE'
-
Numéro de révision de l'interface CGI du serveur : i.e. 'CGI/1.1'.
Exemple: <?php
echo$_SERVER['GATEWAY_INTERFACE'];
?>
- 'SERVER_ADDR'
-
L'adresse IP du serveur sous lequel le script courant est en train d'être exécuté.
Exemple: <?php
echo$_SERVER['SERVER_ADDR'];
?>
- '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.
Exemple: <?php
echo $_SERVER['SERVER_NAME' ];
?>
- '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.
Exemple: <?php
echo $_SERVER['SERVER_SOFTWARE' ];
?>
- 'SERVER_PROTOCOL'
-
Nom et révision du protocole de communication : i.e. 'HTTP/1.0';
Exemple: <?php
echo $_SERVER['SERVER_PROTOCOL' ] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['REQUEST_METHOD' ] ;
?>
- 'REQUEST_TIME'
-
Le temps Unix du début de la requête. Disponible depuis PHP 5.1.0.
Exemple: <?php
echo $_SERVER['REQUEST_TIME'] ;
?>
- 'QUERY_STRING'
-
La chaîne de requête, si elle existe, qui est utilisée pour accéder à la page.
Exemple: <?php
echo $_SERVER['QUERY_STRING'] ;
?>
- 'DOCUMENT_ROOT'
-
La racine sous laquelle le script courant est exécuté, comme défini dans la configuration du serveur.
Exemple: <?php
echo $_SERVER['DOCUMENT_ROOT'] ;
?>
- 'HTTP_ACCEPT'
-
Contenu de l'en-tête Accept: de la requête courante, s'il y en a une.
Exemple: <?php
echo $_SERVER['HTTP_ACCEPT'] ;
?>
- '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'.
Exemple: <?php
echo $_SERVER['HTTP_ACCEPT_ENCODING'] ;
?>
- 'HTTP_ACCEPT_LANGUAGE'
-
Contenu de l'en-tête Accept-Language: de la requête courante, si elle existe. Par exemple : 'fr'.
Exemple: <?php
echo $_SERVER['HTTP_ACCEPT_LANGUAGE'] ;
?>
- 'HTTP_CONNECTION'
-
Contenu de l'en-tête Connection: de la requête courante, si elle existe. Par exemple : 'Keep-Alive'.
Exemple: <?php
echo $_SERVER['HTTP_CONNECTION'] ;
?>
- 'HTTP_HOST'
-
Contenu de l'en-tête Host: de la requête courante, si elle existe.
Exemple: <?php
echo $_SERVER['HTTP_HOST'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['HTTP_REFERER'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['HTTP_USER_AGENT'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['HTTPS'] ;
?>
- 'REMOTE_ADDR'
-
L'adresse IP du client qui demande la page courante.
Exemple: <?php
echo $_SERVER['REMOTE_ADDR'] ;
?>
- '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().
Exemple: <?php
echo $_SERVER['REMOTE_HOST'] ;
?>
- 'REMOTE_PORT'
-
Le port utilisé par la machine cliente pour communiquer avec le serveur web.
Exemple: <?php
echo $_SERVER['REMOTE_PORT'] ;
?>
- 'REMOTE_USER'
- le nom d'utilisateur du client s'il est authentifié
- 'REDIRECT_REMOTE_USER'
- le nom d'utilisateur du client s'il est authentifié et qu'une redirection est en cours
- '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.
Exemple: <?php
echo $_SERVER['SCRIPT_FILENAME'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['SERVER_ADMIN'] ;
?>
- '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é.
Exemple: <?php
echo $_SERVER['SERVER_PORT'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['SERVER_SIGNATURE'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['PATH_TRANSLATED'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['SCRIPT_NAME'] ;
?>
- 'REQUEST_URI'
-
L'URI qui a été fourni pour accéder à cette page. Par exemple : '/index.html'.
Exemple: <?php
echo $_SERVER['REQUEST_URI'] ;
?>
- '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).
Exemple: <?php
echo $_SERVER['PHP_AUTH_DIGEST'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['PHP_AUTH_USER'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['PHP_AUTH_PW'] ;
?>
- '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.
Exemple: <?php
echo $_SERVER['AUTH_TYPE'] ;
?>
- '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'URL http://www.example.com/php/path_info.php/some/stuff?foo=bar, alors la variable $_SERVER['PATH_INFO'] contiendra /some/stuff.
Exemple: <?php
echo $_SERVER['PATH_INFO'] ;
?>
- 'ORIG_PATH_INFO'
-
Version orignale de 'PATH_INFO' avant d'être analysée par PHP.
Exemple: <?php
echo $_SERVER['ORIG_PATH_INFO'] ;
?>
- 'HTTP_X_FORWARDED_FOR'
- l'adresse IP du client passée par un proxy
- 'HTTP_X_FORWARDED_HOST'
- le nom de domaine du site passé par un proxy
- 'HTTP_X_FORWARDED_SERVER'
- le nom du serveur passé par un proxy
- 'REDIRECT_URL'
- l'URL de redirection si une redirection est en cours
- 'REDIRECT_STATUS'
- le code de statut de la redirection si une redirection est en cours
- 'HTTP_COOKIE'
- la chaîne de cookie envoyée par le client
- 'FCGI_ROLE'
- le rôle du processus FastCGI (reqeust ou response)
- 'PHP_AUTH_TYPE'
- le type d'authentification utilisé
- 'PHP_AUTH_PW'
- le mot de passe d'authentification si fourni
- 'HTTP_X_FORWARDED_FOR'
- l'adresse IP du client passée par un proxy
- 'HTTP_X_FORWARDED_HOST'
- le nom de domaine du site passé par un proxy
- 'HTTP_X_FORWARDED_SERVER'
- le nom du serveur passé par un proxy
- 'HTTP_X_FORWARDED_PORT'
- le port utilisé par le proxy pour se connecter au client
- 'HTTP_X_FORWARDED_PROTO'
- le protocole utilisé par le proxy pour se connecter au client
- 'HTTP_X_FORWARDED_PROTO_VERSION'
- la version du protocole utilisé par le proxy pour se connecter au client
- 'HTTP_X_FORWARDED_SSL'
- indique si la connexion est sécurisée (on ou off) passée par un proxy
- 'HTTP_FRONT_END_HTTPS'
- indique si la connexion est sécurisée (on ou off) passée par un serveur de front-end
- 'HTTP_X_POWERED_BY'
- les informations sur le logiciel utilisé pour exécuter le script
- 'HTTP_X_REAL_IP'
- est une en-tête HTTP qui indique l'adresse IP réelle du client qui accède au serveur, même si cette adresse a été masquée ou modifiée par un serveur proxy. Cette en-tête est souvent utilisée dans les configurations de serveur qui utilisent des serveurs proxy pour acheminer les requêtes vers le serveur final, afin de permettre au serveur de connaître l'adresse IP réelle du client et de prendre des décisions sur la base de cette information (par exemple, en utilisant des règles de filtrage basées sur l'adresse IP).
Cliquez sur suivant pour passez au cours suivant
Par carabde 20 Aout 2014