Maison >développement back-end >tutoriel php >Instructions pour utiliser la fonction php get_magic_quotes_gpc()
La fonction
get_magic_quotes_gpc est utilisée pour déterminer s'il faut ajouter des barres obliques aux données fournies par l'utilisateur. Elle se trouve dans le php.inifichier de configuration. Description de la fonction. Jetons un coup d'œil avec l'éditeur ci-dessous
La fonction get_magic_quotes_gpc est utilisée pour déterminer s'il faut ajouter des barres obliques aux données fournies par l'utilisateur. C'est dans le fichier de configuration php.ini. Permettez-moi de vous présenter la fonction get_magic_quotes_gpc( ). description.
introduction de la fonction get_magic_quotes_gpc
Obtenir la valeur de la variable d'environnement PHP magic_quotes_gpc, qui est une fonction système PHP.
Syntaxe : long get_magic_quotes_gpc(void);
Valeur de retour : long entier
Cette fonction obtient la valeur de la variable magic_quotes_gpc (GPC, Get/Post/Cookie) de la configuration de l'environnement PHP. Renvoyer 0 signifie désactiver cette fonction ; renvoyer 1 signifie activer cette fonction.
Lorsque magic_quotes_gpc est activé, tous les caractères ' (guillemet simple), ” (guillemet double), (barre oblique inverse) et nuls seront automatiquement convertis en caractères de débordement contenant une barre oblique inverse
magic_quotes_gpc définit si. pour ajouter automatiquement une barre oblique inverse au '" dans les données envoyées par GPC (get, post, cookie). Vous pouvez utiliser get_magic_quotes_gpc() pour détecter les paramètres système.
Si ce paramètre n'est pas activé, vous pouvez utiliser la fonction addlashes() pour l'ajouter. Sa fonction est d'ajouter des barres obliques inverses avant certains caractères lorsque cela est requis dans les instructions de requête de base de données.
Ces caractères sont les guillemets simples ('), les guillemets doubles ("), les barres obliques inverses () et NUL (caractère NULL).
Par défaut, la directive PHP magic_quotes_gpc est activée, elle sert principalement à exécutez automatiquement addlashes() sur toutes les données GET, POST et COOKIE.
N'utilisez pas addlashes() sur les chaînes qui ont été échappées par magic_quotes_gpc, car cela provoquerait un échappement à double niveau. Dans ce cas, vous pouvez. utilisez la fonction get_magic_quotes_gpc() pour la détection
Exemple
La bonne façon d'utiliser get_magic_quotes_gpc() pour empêcher les attaques de base de données
.Le code est le suivant
<?php function check_input($value) { // 去除斜杠 if (get_magic_quotes_gpc()) { $value = stripslashes($value); } // 如果不是数字则加引号 if (!is_numeric($value)) { $value = “‘” . mysql_real_escape_string($value) . “‘”; } return $value; } $con = mysql_connect(“localhost”, “hello”, “321″); if (!$con) { die(‘Could not connect: ‘ . mysql_error()); } // 进行安全的 SQL $user = check_input($_POST['user']); $pwd = check_input($_POST['pwd']); $sql = “SELECT * FROM users WHERE user=$user AND password=$pwd”; mysql_query($sql); mysql_close($con); ?>
Le résumé est le suivant :
1. magic_quotes_gpc=on,
Nous ne pouvons pas effectuer d'opérations
addslashes() et stripslashes() sur les données de chaîne d'entrée et de sortie de la base de données, et les données seront affichées normalement
si cela se produit. Si vous effectuez addlashes() sur les données d'entrée,
alors vous devez utiliser stripslashes() pour supprimer les barres obliques inverses en excès lors de la sortie
2. . Pour magic_quotes_gpc=. Dans le cas de off
vous devez utiliser addlashes() pour traiter les données d'entrée, mais vous n'avez pas besoin d'utiliser stripslashes() pour formater la sortie
parce que addlashes() Les barres obliques inverses ne sont pas écrites ensemble dans la base de données, mais aident simplement mysql à terminer l'exécution de l'instruction sql
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!