Superglobal PHP $_GET
PHP $_GET
La superglobale $_GET contient un tableau de variables reçues via la méthode HTTP GET.
Les superglobales PHP sont des variables intégrées qui sont toujours accessibles dans tous les contextes !
Il existe deux principales façons d'envoyer des variables via la méthode HTTP GET :
- via des chaînes de requête dans l'URL
- via des formulaires HTML avec method="get"
$_GET via des chaînes de requête URL
Une chaîne de requête est des données ajoutées à la fin d'une URL. Dans l'élément <a> ci-dessous, tout ce qui suit le signe ? constitue la chaîne de requête :
Lien HTML avec paramètres de requête URL :
<html> <body> <a href="demo_phpfile.php?subject=PHP&web=formation-ti.org">Test $GET</a> </body> </html> La chaîne de requête ci-dessus contient deux paires clé/valeur :
- subject=PHP
- web=formation-ti.org
Dans le fichier PHP, nous pouvons utiliser la superglobale $_GET pour collecter la valeur de la chaîne de requête.
Exemple
Le fichier PHP demo_phpfile.php :
<html> <body> <?php $subject = htmlspecialchars($_GET['subject']); $web = htmlspecialchars($_GET['web']); echo "Étudiez $subject à $web."; ?> </body> </html> Remarque : Validez et assainissez toujours toutes les données collectées à partir des superglobales comme $_GET avant de les utiliser, pour éviter les vulnérabilités de sécurité telles que les attaques XSS. La fonction htmlspecialchars() utilisée ci-dessus est une façon de le faire. Un filtrage plus robuste peut être effectué en utilisant les fonctions de filtrage PHP .
$_GET dans les formulaires HTML
Un formulaire HTML soumet des informations via la méthode HTTP GET si l'attribut method du formulaire est défini sur "get" .
Pour démontrer cela, nous commençons par créer un simple formulaire HTML :
Fichier HTML :
<html> <body> <form action="welcome_get.php" method="GET"> Nom : <input type="text" name="name"> E-mail : <input type="text" name="email"> <input type="submit"> </form> </body> </html> Lorsqu'un utilisateur clique sur le bouton de soumission, les données du formulaire sont envoyées au fichier PHP spécifié dans l'attribut action de la balise <form> .
Les champs du formulaire sont envoyés au fichier PHP, avec l'entrée de l'utilisateur, sous forme de chaînes de requête :
welcome_get.php?name=John&email=john@example.com Dans le fichier PHP, nous pouvons utiliser la variable $_GET pour collecter la valeur des champs de saisie.
Exemple
Code PHP à l'intérieur de la page welcome_get.php :
<html> <body> Bienvenue <?php echo htmlspecialchars($_GET["name"]); ?><br> Votre adresse e-mail est : <?php echo htmlspecialchars($_GET["email"]); ?> </body> </html> Pensez SÉCURITÉ lors du traitement des formulaires et des entrées utilisateur !
Les exemples ci-dessus ne contiennent pas beaucoup de validation de formulaire, ils montrent simplement comment vous pouvez envoyer et récupérer des données de formulaire. Une validation appropriée des données de formulaire est importante pour vous protéger des hackers et des spammeurs !
En savoir plus sur le traitement des formulaires PHP en tenant compte de la sécurité dans le chapitre Validation de formulaire .