04
Juin
2002

Variables utiles en PHP

... Ou les variables dont on a toujours besoin, et dont on ne se souvient jamais (et oui, ce titre là faisait un peu long :p )
PHP regorge de petites variables bien utiles qui permettent de récupérer tout un tas d'informations sur l'exécution en cours. Les variables sont actuellement accessibles plusieurs méthodes : $HTTP_SERVER_VARS et $_SERVER. La deuxième formulation fonctionne uniquement sur les version de PHP supérieure à 4.1.0. Il en est de même pour les variables $HTTP_POST_VARS, $HTTP_GET_VARS, $HTTP_COOKIE_VARS, $HTTP_ENV_VARS et $HTTP_SESSION_VARS.
Toutes ces variables sont accessibles via la fonction phpinfo() directement inclue dans PHP. Bon d'accord, on peut les avoir via la fonction, mais ce n'est pas toujours pratique, alors en voici une liste non exhaustive :

  • $HTTP_GET_VARS
  • $HTTP_POST_VARS
  • $HTTP_SERVER_VARS
  • $PHP_SELF
  • $SERVER_NAME
  • $SERVER_ADDR
  • $HTTP_USER_AGENT
  • $DOCUMENT_ROOT
  • $REQUEST_METHOD
  • $QUERY_STRING
  • $HTTP_ACCEPT_LANGUAGE
  • $REMOTE_ADDR
  • $HTTP_REFERER
  • $SCRIPT_FILENAME
  • $REQUEST_URI

$HTTP_GET_VARS[] ou $_GET[]

Il s'agit d'un tableau associatif qui regoupe toutes les variables passées au script par le méthode GET (c'est à dire dans l'url). Rien de bien compliqué, si vous avez une URL du genre : http://monsite.com/monscript.php?argument=foobar Vous pourrez récupérer la variable argument par $HTTP_GET_VARS['argument']

$HTTP_POST_VARS[] ou $_POST[]

Identique au tableau $_GET, celui-ci permet de récupérer toutes les variables passées en méthode POST.

Exemple :

<FORM action="$PHP_SELF" method="POST">
<INPUT type="text" name="monchamp">
<INPUT type="submit" value="Valider">
</FORM>

Le formulaire une fois posté permettra l'accès à $HTTP_POST_VARS['monchamp'] pour utiliser la valeur tapée dans le champ de formulaire.

$HTTP_SERVER_VARS[]ou $_SERVER[]

Ce tableau associatif permet l'accès aux variables appartenant au serveur.
On peut retrouver son nom, son IP, ainsi que des infos appartenant plus au client, comme l'IP ou le User Agent.

$PHP_SELF ou $HTTP_SERVER_VARS['PHP_SELF'] ou $_SERVER['PHP_SELF']

Cette variable très utile vous permet de récupérer le nom du fichier courant.
Par exemple, si vous codez un petit script avec un formulaire, et que vous ne savez pas sur quelle page poster le formulaire, utilisez cette variable :

<FORM action="$PHP_SELF" method="POST">

$SERVER_NAME ou $HTTP_SERVER_VARS['SERVER_NAME'] ou $_SERVER['SERVER_NAME']

Cette variable, également appelée $HTTP_HOST, permet de savoir le nom du serveur sur lequel s'exécute votre script. Par exemple, ici, sur PHPTools4U.com, le $SERVER_NAME est www.phptools4u.com.
Simple non ?

$SERVER_ADDR ou $HTTP_SERVER_VARS['SERVER_ADDR'] ou $_SERVER['SERVER_ADDR']

Vous donne la possibilité de manipuler l'adresse IP du serveur. On l'utilise néanmoins rarement, les IP des serveurs ne permettant pas d'accéder au site sur un hébergement mutualisé.

$HTTP_USER_AGENT ou $HTTP_SERVER_VARS['HTTP_USER_AGENT'] ou $_SERVER['HTTP_USER_AGENT']

Variable très très utile pour déterminer quel type de navigateur utilise l'utilisateur actuellement sur votre site. En l'utilisant correctement, vous pouvez facilement afficher une partie voire le site entier d'une façon différente entre Mozilla et Internet Explorer. Exemple :

<?
if ( eregi('microsoft'__$HTTP_USER_AGENT__)  ) {
    echo 
'Internet Explorer';
}
else {
    echo 
'Autre navigateur';
}
?>

A noter cependant que certains navigateurs ont la possiblité de modifier leur USER_AGENT, donc, il se peut que vos tests ne fonctionne pas correctement avec ces navigateurs "trafiqués".

$DOCUMENT_ROOT ou $HTTP_SERVER_VARS['DOCUMENT_ROOT'] ou $_SERVER['DOCUMENT_ROOT']

Variable très utilisée pour les include et autre require, elle vous permet de trouver la racine au niveau du système de fichier.
Par exemple, vous possédez un serveur sous Linux, dont les fichiers accessibles depuis le web sont dans /var/www/.
Ainsi donc, la racine HTTP (celle à laquelle vous faites référence par / lors des appels aux images par exemple) correspond à /var/www/, et c'est donc ce que retournera $DOCUMENT_ROOT.

Lire la suite »
Posté par Mathieu LESNIAK à 15:12 dans la catégorie Articles | RSS catégorie
Tag(s) associé(s) :