Aller au contenu

PHP/Variables superglobales

Leçons de niveau 14
Une page de Wikiversité, la communauté pédagogique libre.
< PHP
Début de la boite de navigation du chapitre
Variables superglobales
Icône de la faculté
Chapitre no 5
Leçon : PHP
Chap. préc. :Tableaux
Chap. suiv. :Fonctions
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « PHP : Variables superglobales
PHP/Variables superglobales
 », n'a pu être restituée correctement ci-dessus.

Les variables superglobales

[modifier | modifier le wikicode]

Ces variables sont prédéfinies à PHP et sont destinées à stocker des informations bien spécifiques. Elles se présentent généralement sous la forme d'un tableau associatif à une ou deux dimensions.

Voici une liste non-exhaustive (comprenant les cas d'utilisation les plus courants):

Variables de serveur : $_SERVER

[modifier | modifier le wikicode]

Elle contient des informations sur le serveur (nom, IP, logiciels installés…)

Par exemple pour extraire l'URL de la page courante :

echo 'http://'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI'];

Variables d'environnement : $_ENV

[modifier | modifier le wikicode]

Elle contient des informations sur l'environnement d'exécution du script PHP (c'est-à-dire sur le serveur). Elle est donc directement liée au serveur et à son système.
Prenons comme exemple, le prénom 'Paul':

<?php
echo 'Mon nom d\'utilisateur est ' .$_ENV["USER"] . '!';
?>

En imaginant que l'utilisateur 'Paul' exécute ce script, on aura alors:

Début de l'exemple
Fin de l'exemple


[modifier | modifier le wikicode]

Elle stocke les informations sur les cookies envoyés aux clients.
Un petit exemple pour illustrer cela:

<?php
echo 'Bonjour ' . htmlspecialchars($_COOKIE["name"]) . '!';
?>

On suppose que le cookie "name" a été défini précédemment, (on prendra Paul encore une fois)
L'exemple ci-dessus va afficher alors:

Début de l'exemple
Fin de l'exemple


GET variables : $_GET

[modifier | modifier le wikicode]

Elle stocke les valeurs des arguments passés par URL. Ses clés sont donc par conséquent variables. Pour illustrer ces propos, imaginons que l'utilisateur ai entrée l'URL suivant: http://example.com/?name=Paul

<?php
echo 'Bonjour ' . htmlspecialchars($_GET["name"]) . '!';
?>

L'exemple ci-dessus va afficher alors:

Début de l'exemple
Fin de l'exemple


POST variables : $_POST

[modifier | modifier le wikicode]

Elle stocke les valeurs des informations passées par formulaire avec la méthode="post". Ses clés sont donc par conséquent variables. Voir le cours sur les formulaires.
L'exemple ci-dessous est un formulaire comportant un champ de saisie et un bouton de soumission.
Quand un utilisateur soumet des données en cliquant sur "Soumettre", les données du formulaire sont envoyées dans un fichier spécial dans l'attribut d'action de la balise <form>.
Puis, on peut utiliser $ _POST pour recueillir la valeur du champ de saisie.


Début de l'exemple
Fin de l'exemple


Variables de requête : $_REQUEST

[modifier | modifier le wikicode]

Un tableau associatif constitué du contenu des variables $_GET, $_POST, $_COOKIE.
L'exemple ci-dessous est un formulaire comportant un champ de saisie et un bouton de soumission.
Quand un utilisateur soumet des données en cliquant sur "Soumettre", les données du formulaire sont envoyées dans un fichier spécial dans l'attribut d'action de la balise <form>.
Puis, on peut utiliser $ _REQUEST pour recueillir la valeur du champ de saisie.


Début de l'exemple
Fin de l'exemple


Variable de téléchargement : $_FILES

[modifier | modifier le wikicode]

Elle stocke les informations sur un fichier envoyé via HTTP par le client. Voir le cours sur les formulaires.

Variables de session : $_SESSION

[modifier | modifier le wikicode]

Elle contient les valeurs de la session en cours pour le client.

Variables globales : $GLOBALS

[modifier | modifier le wikicode]

Elle stocke les variables globales de la page. Ses clés sont donc des variables.
Ci-dessous, un exemple d'utilisation de la variable $GLOBALS.


Début de l'exemple
Fin de l'exemple

Lorsqu'on exécute ce code, on obtient "100" (=> résultat de la variable 'x' + 'y')