Comment insérer une base de données et effectuer une opération d'échappement en PHP : 1. Définissez l'élément magic_quotes_gpc ; 2. Activez l'élément magic_quotes_runtime 3. Activez l'élément magic_quotes_sybase pour réaliser automatiquement l'échappement.
L'environnement d'exploitation de cet article : système Windows 7, PHP version 7.1, ordinateur DELL G3
Comment php s'insère-t-il dans la base de données et effectue-t-il les opérations d'échappement ?
php Traitement spécial des chaînes lors de l'écriture dans la base de données (quand échapper aux caractères spéciaux)
Lors du traitement des données MySQL et GET et POST, il est souvent nécessaire d'échapper aux guillemets des données.
Il existe trois paramètres en PHP qui peuvent convertir automatiquement les caractères '(guillemet simple), "(guillemet double), (barre oblique inverse) et NULL.
PHP appelle cela des guillemets magiques. Ces trois paramètres sont
magic_quotes_gpc
Affecte les données de requête HTTP (GET, POST et COOKIE). Elle ne peut pas être modifiée au moment de l'exécution. La valeur par défaut en PHP est activée
Lorsque cette option est activée, les données transmises via GET, POST et COOKIE seront automatiquement modifiées.
Par exemple, test.php?id=abc'de"f
echo $_GET['id']; # Vous obtiendrez abc'de"f
magic_quotes_gpc=On; n'a aucun effet. Par exemple, lorsque le $_GET['id'] ci-dessus est écrit dans la base de données, il est toujours abc'de"f,
Au contraire, si magic_quotes_gpc=Off; alors les caractères doivent avoir des guillemets ( indépendamment des guillemets simples ou des guillemets doubles), l'écrire directement dans MySQL deviendra directement vide
Cependant, si vous l'écrivez dans le document au lieu de MySQL. Ensuite, ce sera abc'de"f
magic_quotes_runtime
S'il est activé, la plupart des fonctions qui récupèrent des données à partir de sources externes et les renvoient, y compris à partir de bases de données et de fichiers texte, les données renvoyées seront converties en définition par barre oblique inverse. Cette option peut être modifiée au moment de l'exécution. La valeur par défaut en PHP est désactivée
magic_quotes_sybase
Si elle est activée, les guillemets simples seront échappés au lieu des barres obliques inverses. Remplaceront complètement magic_quotes_gpc. sera échappé. Les guillemets doubles, les barres obliques inverses et les caractères NULL ne seront pas échappés.
我表单内容本来是:<img alt=”" width=”400″ height=”300″ src=”/Upfiles/201105/images/1306657040.jpg” /> <img alt=\”\” width=\”400\” height=\”300\” src=\”/Upfiles/201105/images/1306657040.jpg\” />
Contre-mesure 1 : Modifier le fichier php.ini (je n'entrerai pas dans la méthode de modification de php.ini, vous pouvez le rechercher sur Google)
Contre-mesure 2 : Annuler l'échappement
Étape 1 : Recherchez le fichier que vous avez soumis Des données telles que $_POST['content'], remplacez-les par $content=stripslashes($_POST['content']);
Étape 2 : À l'avenir, remplacez $POST['content'] par $ content
Étape 3 : Soumettez à la base de données, le stockage de la base de données est toujours normal :
(Vous devriez savoir comment résoudre ce problème, n'est-ce pas ? ? Et si je le répétais)
Étape 4 : Utilisez stripslashes() pour filtrer le contenu lu dans la base de données.
stripslashes() Cette fonction supprime les barres obliques inverses ajoutées par la fonction addlashes(). Utilisé pour nettoyer les données récupérées de la base de données ou du formulaire HTML
(
Si vous ne souhaitez pas que la situation suivante se produise dans la page PHP :
Les guillemets simples sont échappés comme '
Les guillemets doubles sont échappés comme "
Ensuite, vous pouvez effectuer les réglages suivants pour éviter :
Définissez magic_quotes_gpc = Off dans php.ini)
Résumé comme suit :
1. Dans le cas de magic_quotes_gpc=on,
Nous ne pouvons pas faire
sur le données de chaîne des bases de données d'entrée et de sortieDans les opérations de addlashes() et stripslashes(), les données seront affichées normalement
Si vous effectuez addlashes() sur les données d'entrée à ce moment,
alors vous devez utiliser. stripslashes() pour supprimer l'excédent 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 sortie.
parce que addlashes() ne convertit pas la barre oblique inverse. L'écriture conjointe dans la base de données aide uniquement MySQL à terminer l'exécution des instructions SQL
Texte intégral : http://blog.csdn.net/qinglianluan/article/details/26272689.
introduction à l'utilisation de la fonction php get_magic_quotes_gpc()
http://www.php100.com/html/php/hanshu/2013/0905/4689.html //Cela peut être compris de cette façon : cette fonction consiste à déterminer si le la fonction "Échapper aux caractères spéciaux" du serveur est activée
addslashes()
Texte intégral : http://php.net/manual/zh/function.addslashes.php //Cette fonction échappe les caractères spéciaux en caractères ordinaires
.Apprentissage recommandé : "Tutoriel vidéo PHP"
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!