首页 后端开发 php教程 ThinkPHP提交表单时默认自动转义的解决方法

ThinkPHP提交表单时默认自动转义的解决方法

Jun 06, 2018 pm 03:52 PM
thinkphp 解决方法 默认

这篇文章主要介绍了ThinkPHP提交表单时默认自动转义的解决方法,可解决针对单引号和双引号的自动转移问题,提供了两种解决方法供大家对比选择,具有一定的实用价值,需要的朋友可以参考下

本文实例讲述了ThinkPHP提交表单时默认自动转义的解决方法。分享给大家供大家参考。具体方法如下:

一、问题:

在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不想给单引号和双引号加上反斜线.

在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不想给单引号和双引号加上反斜线,在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会被自动转义的,就是会自动的加上反斜线,但是我不想给单引号和双引号加上反斜线,如:hds"gh"j'g'h 会被自动转义为:hds\"gh\"j\'g\'h.

请注意需要的是取消这个转义的功能,而不是使用stripslashes() 函数删除这些反斜杠,即不需要官方的这个自动转义的功能.

二、解决方法:

在网上搜索到解决方法:

1、在thinkphp目录下,依次打开 ThinkPHP\Lib\Driver\Db 目录,并在dbmysql.class.php 这个文件中把 escapeString 函数的函数修改成:

复制代码 代码如下:

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;  
}  
}
登录后复制

原函数:

复制代码 代码如下:

public function escapeString($str) {  
//修改 周蛮子 放双引号双重转义  
if($this->_linkID) {  
return mysql_real_escape_string($str,$this->_linkID);  
}else{  
return mysql_escape_string($str);  
}  
}
登录后复制

2、在公共文件中加入:

复制代码 代码如下:

//防止双重转义  
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);  
}
登录后复制

注:如果服务器开了转义,那么就经过thinkphp再次转义后,就会在程序中产生双重转义的Bug

经过修改后,我的网站程序后台录入就没什么问题了,看来大家以后如果有碰到使用Thinkphp时,注意如果服务器开启了过滤单引号或双引号的,可能就会跟ThinkPHP起冲突的了,所以加一层判断,就可以很好的解决这个问题了.

相关推荐:

ThinkPHP自动验证失败的解决方法

thinkphp实现excel数据的导入导出(附完整案例)

以上是ThinkPHP提交表单时默认自动转义的解决方法的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
2 周前 By 尊渡假赌尊渡假赌尊渡假赌
仓库:如何复兴队友
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island冒险:如何获得巨型种子
1 个月前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

如何在Node.js环境中解决第三方接口返回403的问题? 如何在Node.js环境中解决第三方接口返回403的问题? Mar 31, 2025 pm 11:27 PM

在Node.js环境中解决第三方接口返回403的问题当我们在使用Node.js调用第三方接口时,有时会遇到接口返回403错误�...

在使用PHP调用支付宝EasySDK时,如何解决'Undefined array key 'sign'”报错问题? 在使用PHP调用支付宝EasySDK时,如何解决'Undefined array key 'sign'”报错问题? Mar 31, 2025 pm 11:51 PM

问题介绍在使用PHP调用支付宝EasySDK时,按照官方提供的代码填入参数后,运行过程中遇到报错信息“Undefined...

PHP连接MySQL后页面空白,die()函数无效是什么原因? PHP连接MySQL后页面空白,die()函数无效是什么原因? Apr 01, 2025 pm 03:03 PM

PHP连接MySQL后页面空白,die()函数失效的原因分析在学习PHP和MySQL数据库连接的过程中,常常会遇到一些让人困惑...

在Docker环境中使用PECL安装扩展时为什么会报错?如何解决? 在Docker环境中使用PECL安装扩展时为什么会报错?如何解决? Apr 01, 2025 pm 03:06 PM

在Docker环境中使用PECL安装扩展时报错的原因及解决方法在使用Docker环境时,我们常常会遇到一些令人头疼的问�...

如何解决使用ThinkPHP6和elasticsearch-php客户端连接Elasticsearch 8时的cURL error 77问题? 如何解决使用ThinkPHP6和elasticsearch-php客户端连接Elasticsearch 8时的cURL error 77问题? Mar 31, 2025 pm 11:36 PM

在使用ThinkPHP6框架结合elasticsearch-php客户端操作Elasticsearch...

ThinkPHP6路由:如何完整获取包含中文等特殊字符的URL参数? ThinkPHP6路由:如何完整获取包含中文等特殊字符的URL参数? Apr 01, 2025 pm 02:51 PM

ThinkPHP6路由参数中文处理及完整获取在ThinkPHP6框架中,处理包含特殊字符(如中文及标点符号)的URL参数,常常...

See all articles