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 相关文章推荐
php中的实现trim函数代码
Mar 19 PHP
php sprintf()函数让你的sql操作更安全
Jul 23 PHP
一个很不错的PHP翻页类
Jun 01 PHP
php与XML、XSLT、Mysql的结合运用实现代码
Nov 19 PHP
Linux下将excel数据导入到mssql数据库中的方法
Feb 08 PHP
PHP字符串处理的10个简单方法
Jun 30 PHP
preg_match_all使用心得分享
Jan 31 PHP
php实现根据url自动生成缩略图的方法
Sep 23 PHP
PHP 的比较运算与逻辑运算详解
May 12 PHP
php+Ajax处理xml与json格式数据的方法示例
Mar 04 PHP
php实现大文件断点续传下载实例代码
Oct 01 PHP
php装饰者模式简单应用案例分析
Oct 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
《破坏领主》销量已超100万 未来将继续开发新内容
2020/03/08 其他游戏
PHP随机数 C扩展随机数
2016/05/04 PHP
php单链表实现代码分享
2016/07/04 PHP
Yii 框架使用Forms操作详解
2020/05/18 PHP
加载jQuery后$冲突的解决办法
2010/07/09 Javascript
JavaScript实现文字与图片拖拽效果的方法
2015/02/16 Javascript
jquery判断密码强度的验证代码
2020/04/22 Javascript
js实现兼容IE、Firefox的图片缩放代码
2015/12/08 Javascript
jquery Deferred 快速解决异步回调的问题
2016/04/05 Javascript
Form表单按回车自动提交表单的实现方法
2016/11/18 Javascript
使用Bootstrap Tabs选项卡Ajax加载数据实现
2016/12/23 Javascript
5分钟打造简易高效的webpack常用配置
2017/07/04 Javascript
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
vue加载完成后的回调函数方法
2018/09/07 Javascript
新版小程序登录授权的方法
2018/12/12 Javascript
Javascript ParentNode和ChildNode接口原理解析
2020/03/16 Javascript
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
使用Pandas对数据进行筛选和排序的实现
2019/07/29 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
2020/03/10 Python
IE8下CSS3选择器nth-child() 不兼容问题的解决方法
2016/11/16 HTML / CSS
Brydge英国:适用于Apple iPad和Microsoft Surface Pro的蓝牙键盘
2019/05/16 全球购物
员工薪酬福利制度
2014/01/17 职场文书
先进事迹报告会主持词
2014/04/02 职场文书
绘画专业自荐信
2014/07/04 职场文书
委托书如何写
2014/08/30 职场文书
2014年“向国旗敬礼”网上签名寄语活动方案
2014/09/27 职场文书
党员个人整改方案及措施
2014/10/25 职场文书
婚礼新人答谢词
2015/01/04 职场文书
中学生自我评价范文
2015/03/03 职场文书
音乐之声观后感
2015/06/04 职场文书
婚宴致辞
2015/07/28 职场文书
导游词之麻姑仙境
2019/11/18 职场文书
mysql的数据压缩性能对比详情
2021/11/07 MySQL
MySQL的表级锁,行级锁,排它锁和共享锁
2022/07/15 MySQL