Manuel PHP
Précédent | Chapitre 7. Les variables | Suivant

# Variables prédéfinies

PHP fourni un grand nombre de variables prédéfinies. Cependant, beaucoup de ces variables ne peuvent pas être présentées ici, car elles dépendent du serveur sur lequel elles tournent, de la version du serveur, et de la configuration du serveur, ou encore d'autres facteurs. Certaines de ces variables ne seront pas accessibles lorsque PHP fonctionne en exécutable.

Malgré ces données, voici une liste de variables prédéfinies, qui seront accessibles avec une installation ad hoc de PHP3, fonctionnant en module, sous Apache 1.3.6.

Pour la liste complète des variables prédéfinies (et d'autres informations pratiques) reportez-vous (et usez) de phpinfo().

> Note : Cette liste n'est pas exhaustive et ne le sera pas. C'est simplement un aperçu des variables prédéfinies qui peuvent être accessibles dans les scripts.

## Variables Apache

Ces variables sont créées par le serveur Apache. Si vous utilisez un autre serveur web, il n'est pas sur que celui-ci vous fournira les mêmes variables. Il peut ne pas les fournir, en fournir d'autres. Cependant, un bon nombre de ces variables font partie de l'interface CGI 1.1, et on peut s'attendre à les retrouver.

Notez que peu d'entre elles seront accessibles lorsque PHP est appelé en ligne de commande, (et elles n'auront alors peut être pas de sens)

$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 éxé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'.

$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 : 'en'.

$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.

$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.

$REMOTE_ADDR

  L'adresse IP du client qui demande la page courante.

$REMOTE_PORT

  Le port utilisé par la machine cliente pour communiquer avec le serveur web.

$SCRIPT_FILENAME

  Le chemin absolu jusqu'au script courant.

$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 chemin traduction virtuel->réel.

$SCRIPT_NAME

  Contient le nom du script courant. Cela sert lorsque les pages doivent s'appeler elles-mêmes.

$REQUEST_URI

  L'URI qui a été fourni pour accéder à cette page. Par exemple : '/index.html'.

## Variables d'environnement

Ces variables sont importées dans l'espace de nom global de PHP, depuis l'environnement sous lequel PHP fonctionne. Beaucoup d'entre elles sont fournies par le shell qui exécute PHP et différents systèmes étant susceptibles de disposer de différents shells, une liste définitive est impossible à établir. Reportez-vous à la documentation de votre shell, pour connaître la liste des variables d'environnement prédéfinies.

Les autres variables d'environment incluent les variables CGI, placées ici, quelquefois la méthode d'éxécution de PHP (CGI ou module).

## Variables PHP

Ces variables sont créées par PHP lui_même. Les variables `$HTTP_*_VARS` ne sont disponibles que si l'option de configuration track_vars a été activée. Lorsque c'est le cas, ces variables existent toujours, même si ce sont des tableaux vides. Cela évite les usurpations mal intentionnées de ces variables.

> Note : Depuis PHP 4.0.3, track_vars est toujours activé, quelle que soit la configuration.

Si la directive register_globals est activée, alors ces variables seront aussi disponibles comme variables globales du script : c'est-à-dire, indépendamment des tableaux `$HTTP_*_VARS`. Cette fonctionnalité doit être utilisée avec précautions, et de préférence, désactivée. Si `$HTTP_*_VARS` est sécurisé, les équivalents globaux peuvent être écrasés par les données d'entrée de l'utilisateur, avec des intrusions possibles. Si vous ne pouvez pas désactiver register_globals, vous devez prendre toutes les dispositions possibles pour vous assurer que les données utilisées sont sÛres.

$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).

$PHP_SELF

  Le nom du fichier du script en cour d'éxécution, par rapport au document root. Si PHP fonctionne en ligne de commande, cette variable n'est pas disponible.

$HTTP_COOKIE_VARS

  Un tableau associatif des variables passées au script courant via les HTTP cookies. Uniquement possible si le suivi des variables a été activé avec la directive générale track_vars ou avec la directive locale `<? php_track_vars ?>`.

$HTTP_GET_VARS

  Un tableau associatif des variables passées au script courant via les HTTP GET. Uniquement possible si le suivi des variables a été activé avec la directive générale track_vars ou avec la directive locale `<? php_track_vars ?>`.

$HTTP_POST_VARS

  Un tableau associatif des variables passées au script courant via les HTTP POST. Uniquement possible si le suivi des variables a été activé avec la directive générale track_vars ou avec la directive locale `<? php_track_vars ?>`.

$HTTP_POST_FILES

  Un tableau associatif contenant les informations sur les fichiers téléchargés avec la méthode HTTP POST. Reportez-vous au chapitre Téléchargement par méthode POST pour plus de détails sur le contenu de `$HTTP_POST_FILES`.

  `$HTTP_POST_FILES` n'est disponible que dans les versions 4.0.0 et plus récentes de PHP.

$HTTP_ENV_VARS

  Un tableau associatif des variables passées au script par l'environnement parent.

$HTTP_SERVER_VARS

  Un tableau associatif des variables passées au script par le serveur HTTP. Ces variables sont analogues aux variables décrites ci-dessus.

Précédent | Sommaire | Suivant
Les variables | Niveau supérieur | Portée des variables