Les variables super globales ont été activées après PHP 4.1.0. Ce sont des variables fournies avec le système PHP et disponibles dans toute la portée d'un script.
Plusieurs superglobales sont prédéfinies en PHP, ce qui signifie qu'elles sont disponibles dans toute la portée d'un script. Vous pouvez l'utiliser dans des fonctions et des classes sans instructions particulières.
Liste des variables super globales PHP :
$GLOBAUX
$_SERVEUR
$_REQUEST
$_POST
$_GET
$_FILES
$_ENV
$_COOKIE
$_SESSION
Dans ce chapitre, nous expliquerons plusieurs variables super globales couramment utilisées, et nous présenterons les variables restantes dans les prochains chapitres.
$GLOBALS est un groupe de variables super globales en PHP accessible dans toute la portée d'un script PHP.
$GLOBALS est un tableau combiné global contenant toutes les variables. Le nom de la variable est la clé du tableau.
L'exemple suivant montre comment utiliser la super variable globale $GLOBALS :
<?php $x = 75 ; $ y = 25 ; ajout ( ) { $ GLOBALS [ ' z ' ] = $GLOBALS [ ' x ' ] + $GLOBALS [ ' y ' ] } ajout ( ) ; écho $z ? >
Dans l'exemple ci-dessus, z est une variable super globale dans le tableau $GLOBALS, accessible également en dehors de la fonction.
$_SERVER est un tableau contenant des informations telles que l'en-tête, le chemin et les emplacements du script. Les éléments de ce tableau sont créés par le serveur Web. Il n'y a aucune garantie que chaque serveur proposera tous les éléments ; les serveurs peuvent en ignorer certains ou servir des éléments non répertoriés ici.
L'exemple suivant montre comment utiliser des éléments dans $_SERVER :
<?php écho $ _SERVER [ ' PHP_SELF ' ] ; " <br> " ; écho $ _SERVER [ ' NOM_SERVEUR ' ] ; " <br> " ; écho $ _SERVER [ ' HTTP_HOST ' ] ; " <br> " ; écho $ _SERVER [ ' HTTP_REFERER ' ] ; " <br> " ; écho $ _SERVER [ ' HTTP_USER_AGENT ' ] ; " <br> " ; écho $_SERVEUR [ ' SCRIPT_NAME ' ] ? >
Le tableau suivant répertorie les éléments importants dans toutes les variables $_SERVER :
élément/code | décrire |
---|---|
$_SERVEUR['PHP_SELF'] | Le nom de fichier du script en cours d'exécution, lié à la racine du document. Par exemple, utiliser $_SERVER['PHP_SELF'] dans un script sur http://example.com/test.php/foo.bar entraînera /test.php/foo.bar. La constante __FILE__ contient le chemin complet et le nom de fichier du fichier actuel (c'est-à-dire contenant). À partir de PHP version 4.3.0, cette variable contiendra le nom du script si PHP s'exécute en mode ligne de commande. Cette variable n'est pas disponible dans les versions précédentes. |
$_SERVEUR['GATEWAY_INTERFACE'] | La version de la spécification CGI utilisée par le serveur ; par exemple, "CGI/1.1". |
$_SERVEUR['SERVER_ADDR'] | L'adresse IP du serveur sur lequel le script est actuellement exécuté. |
$_SERVEUR['SERVEUR_NAME'] | Le nom d'hôte du serveur sur lequel le script est actuellement exécuté. Si le script s'exécute sur un hôte virtuel, le nom est déterminé par la valeur définie pour cet hôte virtuel. (ex : www.codercto.com) |
$_SERVEUR['SERVER_SOFTWARE'] | Chaîne d'identification du serveur, indiquée dans les informations d'en-tête lors de la réponse à la requête. (par exemple : Apache/2.2.24) |
$_SERVEUR['SERVER_PROTOCOL'] | Le nom et la version du protocole de communication utilisé lors de la demande de la page. Par exemple, « HTTP/1.0 ». |
$_SERVEUR['REQUEST_METHOD'] | La méthode de requête utilisée pour accéder à la page ; par exemple, "GET", "HEAD", "POST", "PUT". |
$_SERVEUR['REQUEST_TIME'] | L'horodatage du début de la demande. Disponible depuis PHP 5.1.0. (par exemple : 1377687496) |
$_SERVEUR['QUERY_STRING'] | chaîne de requête (chaîne de requête), le cas échéant, via laquelle l'accès à la page est effectué. |
$_SERVEUR['HTTP_ACCEPT'] | Le contenu de l’élément Accept: dans l’en-tête de requête actuel, s’il existe. |
$_SERVEUR['HTTP_ACCEPT_CHARSET'] | Le contenu de l’élément Accept-Charset: dans l’en-tête de requête actuel, s’il existe. Par exemple : "iso-8859-1,*,utf-8". |
$_SERVEUR['HTTP_HOST'] | Le contenu du champ Host: dans l’en-tête de la demande actuelle, s’il est présent. |
$_SERVEUR['HTTP_REFERER'] | Dirige l'agent utilisateur vers l'adresse de la page précédant la page actuelle, si elle existe. Déterminé par les paramètres de l'agent utilisateur. Tous les agents utilisateurs ne définiront pas cet élément, et certains fournissent également la fonction de modification de HTTP_REFERER. Bref, la valeur n'est pas digne de confiance. ) |
$_SERVEUR['HTTPS'] | Défini sur une valeur non vide si le script est accessible via le protocole HTTPS. |
$_SERVEUR['REMOTE_ADDR'] | L'adresse IP de l'utilisateur consultant la page actuelle. |
$_SERVEUR['REMOTE_HOST'] | Le nom d'hôte de l'utilisateur parcourant la page actuelle. La résolution inversée DNS ne dépend pas du REMOTE_ADDR de l'utilisateur. |
$_SERVEUR['REMOTE_PORT'] | Le numéro de port utilisé sur la machine de l'utilisateur pour se connecter au serveur Web. |
$_SERVEUR['SCRIPT_FILENAME'] | Le chemin absolu du script en cours d'exécution. |
$_SERVEUR['SERVER_ADMIN'] | Cette valeur spécifie le paramètre SERVER_ADMIN dans le fichier de configuration du serveur Apache. Si le script s'exécute sur un hôte virtuel, cette valeur est celle de cet hôte virtuel. (par exemple : quelqu'[email protected]) |
$_SERVEUR['SERVEUR_PORT'] | Le port utilisé par le serveur Web. La valeur par défaut est "80". Si vous utilisez une connexion sécurisée SSL, cette valeur est le port HTTP défini par l'utilisateur. |
$_SERVEUR['SERVER_SIGNATURE'] | Une chaîne contenant la version du serveur et le nom d'hôte virtuel. |
$_SERVEUR['PATH_TRANSLATED'] | Le chemin de base du système de fichiers (et non la racine du document) où se trouve le script actuel. C'est le résultat une fois que le serveur a été imagé d'un chemin virtuel vers un chemin réel. |
$_SERVEUR['SCRIPT_NAME'] | Contient le chemin d'accès au script actuel. Ceci est utile lorsque la page doit pointer vers elle-même. La constante __FILE__ contient le chemin complet et le nom de fichier du script actuel (comme un fichier d'inclusion). |
$_SERVEUR['SCRIPT_URI'] | L'URI est utilisé pour spécifier la page à laquelle accéder. Par exemple "/index.html". |
PHP $_REQUEST est utilisé pour collecter les données soumises par les formulaires HTML.
L'exemple suivant montre un formulaire avec des champs de saisie et des boutons de soumission. Lorsque l'utilisateur soumet les données du formulaire en cliquant sur le bouton « Soumettre », les données du formulaire seront envoyées au fichier de script spécifié dans l'attribut d'action de la balise <form>. Dans cet exemple, nous spécifions le fichier pour gérer les données du formulaire. Si vous souhaitez qu'un autre fichier PHP gère ces données, vous pouvez modifier le nom du fichier de script spécifié. Ensuite, nous pouvons utiliser la super variable globale $_REQUEST pour collecter les données du champ de saisie sous la forme :
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Nom : <input type="text" name="fname"><type d'entrée ="submit"></form><?php $name = $_REQUEST['fname']; echo $name ?></body></html>
PHP $_POST est largement utilisé pour collecter des données de formulaire. Spécifiez cet attribut dans la balise HTML form : "method="post".
L'exemple suivant montre un formulaire avec des champs de saisie et des boutons de soumission. Lorsque l'utilisateur soumet les données du formulaire en cliquant sur le bouton « Soumettre », les données du formulaire seront envoyées au fichier de script spécifié dans l'attribut d'action de la balise <form>. Dans cet exemple, nous spécifions le fichier pour gérer les données du formulaire. Si vous souhaitez qu'un autre fichier PHP gère ces données, vous pouvez modifier le nom du fichier de script spécifié. Ensuite, nous pouvons utiliser la super variable globale $_POST pour collecter les données du champ de saisie sous la forme :
<html><body><form method="post" action="<?php echo $_SERVER['PHP_SELF'];?>">Nom : <input type="text" name="fname"><type d'entrée ="submit"></form><?php $name = $_POST['fname']; echo $name ?></body></html>
PHP $_GET est également largement utilisé pour collecter des données de formulaire. Spécifiez cet attribut dans la balise HTML form : "method="get".
$_GET peut également collecter les données envoyées dans l'URL.
Supposons que nous ayons une page HTML avec un lien hypertexte contenant des paramètres :
<html><body><a href="test_get.php?subject=PHP&web=codercto.com">Tester $GET</a></body></html>
Lorsque l'utilisateur clique sur le lien "Test $GET", les paramètres "subject" et "web" seront envoyés à "test_get.php". Vous pouvez utiliser la variable $_GET dans le fichier "test_get.php" pour obtenir cela. données.
L'exemple suivant montre le code du fichier "test_get.php" :
<html><body><?php echo "Étude " . $_GET['sujet'] " à " .
Astuce : Si vous souhaitez en savoir plus sur $_POST et $_GET, visitez notre chapitre Formulaires PHP.