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


Posted in PHP onNovember 25, 2014

本文实例讲述了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框架程序设计有所帮助。

PHP 相关文章推荐
用Apache反向代理设置对外的WWW和文件服务器
Oct 09 PHP
PHP JSON格式数据交互实例代码详解
Jan 13 PHP
PHP 命名空间实例说明
Jan 27 PHP
php中使用base HTTP验证的方法
Apr 20 PHP
CodeIgniter与PHP5.6的兼容问题
Jul 16 PHP
Discuz!X中SESSION机制实例详解
Sep 23 PHP
Yii2超好用的日期和时间组件(值得收藏)
May 05 PHP
php 遍历目录,生成目录下每个文件的md5值并写入到结果文件中
Dec 12 PHP
利用PHP判断是否是连乘数字串的方法示例
Jul 03 PHP
php app支付宝回调(异步通知)详解
Jul 25 PHP
PHP attributes()函数讲解
Feb 03 PHP
redis+php实现微博(二)发布与关注功能详解
Sep 23 PHP
php中ltrim()、rtrim()与trim()删除字符空格实例
Nov 25 #PHP
使用PHP Socket 编程模拟Http post和get请求
Nov 25 #PHP
PHP实现无限极分类图文教程
Nov 25 #PHP
php获取指定日期之间的各个周和月的起止时间
Nov 24 #PHP
Thinkphp搭建包括JS多语言的多语言项目实现方法
Nov 24 #PHP
thinkphp判断访客为手机端或PC端的方法
Nov 24 #PHP
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
Nov 24 #PHP
You might like
php header Content-Type类型小结
2011/07/03 PHP
第二章 PHP入门基础之php代码写法
2011/12/30 PHP
PHP.ini中配置屏蔽错误信息显示和保存错误日志的例子
2014/05/12 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
详解PHP用substr函数截取字符串中的某部分
2016/12/03 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
Smarty模板变量与调节器实例详解
2019/07/20 PHP
用正则xmlHttp实现的偷(转)
2007/01/22 Javascript
10款新鲜出炉的 jQuery 插件(Ajax 插件,有幻灯片、图片画廊、菜单等)
2011/06/08 Javascript
巧用js提交表单轻松解决一个页面有多个提交按钮
2013/11/17 Javascript
js变量、作用域及内存详解
2014/09/23 Javascript
浅谈javascript回调函数
2014/12/07 Javascript
JS使用JSON作为参数实例分析
2016/06/23 Javascript
JS点击某个图标或按钮弹出文件选择框的实现代码
2016/09/27 Javascript
网页瀑布流布局jQuery实现代码
2016/10/21 Javascript
jquery replace方法去空格
2017/05/08 jQuery
在Vue mounted方法中使用data变量详解
2019/11/05 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
vue计算属性+vue中class与style绑定(推荐)
2020/03/30 Javascript
[04:22]DOTA2大事件之护国神翼
2020/08/14 DOTA
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
PyQtGraph在pyqt中的应用及安装过程
2019/08/04 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
python实现异常信息堆栈输出到日志文件
2019/12/26 Python
pytorch 常用线性函数详解
2020/01/15 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
vscode配置anaconda3的方法步骤
2020/08/08 Python
HTML5中的新元素介绍
2008/10/17 HTML / CSS
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
大学自荐信
2013/12/12 职场文书
高三毕业生自我鉴定
2013/12/20 职场文书
劳动实践课感言
2014/02/01 职场文书
医院领导班子四风问题对照检查材料
2014/10/26 职场文书
中秋联欢会主持词
2015/07/04 职场文书
Mysql 一主多从的部署
2022/05/20 MySQL