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 Cet article présentera la description de la fonction get_magic_quotes_gpc(). 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. utilisez la fonction get_magic_quotes_gpc() pour détecter
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); ?>
se résume comme suit :
1. Pour magic_quotes_gpc= Dans le cas de on,
nous ne pouvons pas effectuer les 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 sera affiché normalement
.Si vous effectuez addlashes() sur les données d'entrée à ce moment-là,
alors vous devez utiliser stripslashes() pour supprimer les barres obliques inverses en excès lors de la sortie
2. Dans le cas de magic_quotes_gpc=off
doit utiliser addlashes() pour traiter les données d'entrée, mais il n'est pas nécessaire d'utiliser stripslashes() pour formater la sortieparce que addlashes() Les barres obliques inverses ne sont pas écrites dans la base de données, mais aident simplement mysql à terminer l'exécution de l'instruction sql Ce qui précède est tout le contenu de cet article, je j'espère que cela sera utile à l'apprentissage de tout le monde.>
Recommandations associées :
quotesinstructions d'utilisation de la fonction _gpc()
quotes_gpc dans la configuration
quotes_Gpc() introduction à l'utilisation de la fonction
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!