Maison  >  Article  >  développement back-end  >  Comment utiliser des variables superglobales en PHP

Comment utiliser des variables superglobales en PHP

PHPz
PHPzoriginal
2023-05-20 19:01:341248parcourir

Les variables super globales en PHP font référence aux variables accessibles dans la portée globale. Chaque variable super globale est un tableau associatif, qui contient de nombreuses variables prédéfinies en PHP, telles que $_GET, $_POST, $_COOKIE etc. Ces variables superglobales sont très importantes dans le développement Web car elles constituent un moyen important d'obtenir des informations à partir des demandes des utilisateurs, telles que l'obtention de données de formulaire, l'obtention de paramètres d'URL, etc.

Cet article présentera en détail les variables superglobales couramment utilisées en PHP, y compris leurs rôles, comment les utiliser et comment éviter les problèmes de sécurité.

1. $_GET

$_GET est un tableau associatif qui contient tous les paramètres transmis via l'URL. Par exemple, si l'URL demandée est http://example.com/index.php?name=John&age=25, alors le tableau $_GET contiendra les éléments suivants :

array(
    'name' => 'John',
    'age' => '25'
);

Nous pouvons accéder à ces valeurs dans ce qui suit façons :

echo $_GET['name']; // 输出 'John'
echo $_GET['age']; // 输出 '25'

2. $_POST

$_POST est également un tableau associatif, contenant toutes les données du formulaire soumises via la méthode POST. Nous pouvons l'utiliser pour obtenir les données du formulaire, comme indiqué ci-dessous :

<form action="process.php" method="post">
    <input type="text" name="name" />
    <input type="submit" value="Submit">
</form>

Lors de la soumission du formulaire, nous pouvons utiliser la super variable globale $_POST pour obtenir les données soumises :

echo $_POST['name'];

3. $_COOKIE

$_COOKIE est un tableau associatif qui contient tous les cookies envoyés dans la requête en cours. Dans la plupart des cas, nous pouvons utiliser la variable $_COOKIE pour lire les cookies précédemment définis.

setcookie('name', 'John', time() + (86400 * 30), '/');

Cela définira un cookie dans le navigateur de l'utilisateur nommé « nom » avec la valeur « John » et expirera dans 30 jours. Nous pouvons utiliser le code suivant pour lire la valeur du cookie :

echo $_COOKIE['name'];

4. $_SESSION

$_SESSION est un tableau associatif qui contient toutes les variables stockées lors de la session utilisateur. Lorsqu'un utilisateur visite votre site Web, $_SESSION est la seule chose qui distingue un utilisateur d'un autre.

Pour stocker des données dans Session, vous pouvez utiliser le code suivant :

session_start();
$_SESSION['name'] = 'John';

De cette façon, nous pouvons maintenir l'état d'une certaine valeur tout au long de la session :

session_start();
echo $_SESSION['name']; // 输出 'John'

5. $_SERVER

$_SERVER est un contenant An tableau d'informations relatives au serveur et au client pour l'exécution du script en cours. En utilisant $_SERVER, nous pouvons connaître certaines informations demandées par le client, telles que :

  • Adresse IP de l'utilisateur d'accès à distance : $_SERVER['REMOTE_ADDR']
  • Agent utilisateur : $_SERVER['HTTP_USER_AGENT']
  • Script actuel Chemin du fichier : $_SERVER['SCRIPT_FILENAME']
  • Méthode de requête actuelle (GET/POST) : $_SERVER['REQUEST_METHOD']
  • Répertoire racine où se trouve le script actuel : $_SERVER['DOCUMENT_ROOT']

Ces Les informations sont très utiles pour les développeurs.

6. $_FILES

$_FILES est un tableau contenant des informations sur les fichiers en cours de téléchargement. Lors du téléchargement de fichiers, vous pouvez utiliser $_FILES pour gérer les fichiers téléchargés.

Vous pouvez utiliser le code suivant pour imprimer la valeur de $_FILES :

print_r($_FILES);

Cela affichera un tableau contenant des informations sur le fichier, par exemple :

Array
(
    [file] => Array
        (
            [name] => file.txt
            [type] => text/plain
            [tmp_name] => /tmp/phpzAduR5
            [error] => 0
            [size] => 123
        )

)

7 Éviter les problèmes de sécurité

Les variables superglobales sont activées par défaut en PHP. , les développeurs peuvent les utiliser pour obtenir facilement des données à partir de requêtes Web. Cependant, ils sont également source de failles de sécurité.

Un attaquant peut utiliser des variables superglobales dans les requêtes Web pour injecter du code malveillant ou créer des vulnérabilités dans les applications Web. Par conséquent, les développeurs doivent prendre les mesures suivantes pour protéger leurs sites Web :

  1. Filtrer les données d'entrée. Vous pouvez utiliser la fonction filter_var() ou des expressions régulières en PHP pour filtrer les données d'entrée et vous assurer que l'utilisateur n'injecte aucun code malveillant.
  2. Validez les données d'entrée. Les développeurs doivent valider toutes les données d'entrée pour s'assurer qu'elles sont conformes au format et à la longueur attendus. Par exemple, lorsque vous travaillez avec des adresses e-mail, vous pouvez utiliser la fonction filter_var() pour vous assurer que l'adresse e-mail est au format correct.
  3. Ne transmettez pas de variables superglobales directement aux requêtes ou commandes SQL. Il s'agit d'une bonne pratique de programmation pour éviter l'injection SQL et d'autres problèmes de sécurité.
  4. Désactivez le rapport d'erreurs. Sur les serveurs de production, la fonctionnalité de rapport d'erreurs de PHP doit être désactivée pour empêcher les attaquants d'obtenir des informations sur l'architecture de l'application et d'autres informations sensibles.

Résumé

L'utilisation de variables superglobales en PHP peut facilement obtenir des données dans des requêtes Web. Les développeurs doivent soigneusement comprendre ces variables et les utiliser lors de la création d'applications Web. Cependant, les développeurs doivent également comprendre les risques de sécurité liés aux variables superglobales et prendre les mesures nécessaires pour garantir la sécurité des applications.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn