Maison >développement back-end >tutoriel php >Instructions pour utiliser la fonction php get_magic_quotes_gpc()

Instructions pour utiliser la fonction php get_magic_quotes_gpc()

怪我咯
怪我咯original
2017-07-06 11:12:421752parcourir

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[&#39;user&#39;]);
$pwd = check_input($_POST[&#39;pwd&#39;]);
$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!

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