La solution de ThinkPHP pour l'échappement automatique par défaut lors de la soumission d'un formulaire

不言
Libérer: 2023-03-30 09:18:01
original
1164 Les gens l'ont consulté

Cet article présente principalement la solution à l'échappement automatique par défaut de ThinkPHP lors de la soumission d'un formulaire. Il peut résoudre le problème du transfert automatique des guillemets simples et doubles. Il propose deux solutions que chacun peut comparer et choisir, ce qui a une certaine valeur pratique. . Les amis dans le besoin peuvent se référer à

Cet article décrit l'exemple de la solution d'échappement automatique par défaut lors de la soumission d'un formulaire dans ThinkPHP. Partagez-le avec tout le monde pour votre référence. La méthode spécifique est la suivante :

1. Question :

Lors de la soumission d'un formulaire pour insérer des données dans ThinkPHP, les guillemets simples et doubles seront automatiquement échappés, cela Les barres obliques inverses seront ajoutées automatiquement, mais je ne souhaite pas ajouter de barres obliques inverses aux guillemets simples et doubles

Lors de la soumission d'un formulaire pour insérer des données dans ThinkPHP, les guillemets simples et doubles seront automatiquement convertis. , les barres obliques inverses seront automatiquement ajoutées, mais je ne souhaite pas ajouter de barres obliques inverses aux guillemets simples et doubles. Lors de la soumission d'un formulaire pour insérer des données dans ThinkPHP, les guillemets simples et doubles seront automatiquement échappés, des barres obliques inverses seront automatiquement ajoutées. mais je ne veux pas ajouter de barres obliques inverses aux guillemets simples et doubles. Par exemple : hds"gh"j'g'h sera automatiquement échappé vers : hds"gh"j' g'h.

Veuillez noter que ce dont vous avez besoin est d'annuler cette fonction d'échappement, plutôt que d'utiliser la fonction stripslashes() pour supprimer ces barres obliques inverses, c'est-à-dire que vous n'avez pas besoin de la fonction d'échappement automatique officielle.

2. Solution :

Recherchez la solution sur Internet :

1 Dans le répertoire thinkphp, ouvrez le répertoire ThinkPHPLibDriverDb dans l'ordre, et dans dbmysql.class Dans le fichier .php, modifiez la fonction escapeString à :

Copier le code Le code est le suivant :

public function escapeString($str) {  
//修改 周蛮子 放双引号双重转义  
if (!get_magic_quotes_gpc()){  
if($this->_linkID) {  
return mysql_real_escape_string($str,$this->_linkID);  
}else{  
return mysql_escape_string($str);  
}  
} else {  
return $str;  
}  
}
Copier après la connexion

Fonction originale :

Copier le code Le code est le suivant :

public function escapeString($str) {  
//修改 周蛮子 放双引号双重转义  
if($this->_linkID) {  
return mysql_real_escape_string($str,$this->_linkID);  
}else{  
return mysql_escape_string($str);  
}  
}
Copier après la connexion

2. Ajouter dans le fichier public :

Copier le code Coder comme suit :

//防止双重转义  
if (get_magic_quotes_gpc()) {  
function stripslashes_deep($value){  
$value = is_array($value) ?  
array_map('stripslashes_deep', $value) :  
stripslashes($value);  
return $value;  
}  
$_POST = array_map('stripslashes_deep', $_POST);  
$_GET = array_map('stripslashes_deep', $_GET);  
$_COOKIE = array_map('stripslashes_deep', $_COOKIE);  
}
Copier après la connexion

Remarque : Si le serveur permet l'échappement, alors après une nouvelle évasion via thinkphp, un bug de double échappement se produira dans le programme

Après modification, il n'y a aucun problème avec l'entrée en arrière-plan du programme de mon site Web. Il semble que si vous rencontrez l'utilisation de Thinkphp à l'avenir, veuillez noter que si le serveur a activé le filtrage des guillemets simples ou doubles, cela peut entrer en conflit avec ThinkPHP, alors ajoutez une couche de jugement, vous pouvez résolvez très bien ce problème.

Recommandations associées :

Solution à l'échec de la vérification automatique ThinkPHP

thinkphp réalise l'importation et export de données excel (avec dossier complet)

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!