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 JSON中文乱码的解决方法详解
Jun 06 PHP
浅析php面向对象public private protected 访问修饰符
Jun 30 PHP
PHP函数microtime()用法与说明
Dec 04 PHP
php smarty模板引擎的6个小技巧
Apr 24 PHP
PHP页面实现定时跳转的方法
Oct 31 PHP
ajax+php控制所有后台函数调用
Jul 15 PHP
php中array_unshift()修改数组key注意事项分析
May 16 PHP
thinkPHP内置字符串截取函数用法详解
Nov 15 PHP
php插件Xajax使用方法详解
Aug 31 PHP
PHP实现权限管理功能示例
Sep 22 PHP
php利用ob_start()清除输出和选择性输出的方法
Jan 18 PHP
php 判断IP为有效IP地址的方法
Jan 28 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
Cannot modify header information错误解决方法
2008/10/08 PHP
php中通过DirectoryIterator删除整个目录的方法
2015/03/13 PHP
PHP文件上传处理案例分析
2016/10/15 PHP
php源码的安装方法和实例
2019/09/26 PHP
JS 显示当前日期与时间的代码
2010/03/24 Javascript
JQUBar 基于JQUERY的柱状图插件
2010/11/23 Javascript
jquery获得下拉框值的代码
2011/08/13 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
js实现ifram取父窗口URL地址的方法
2015/02/09 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
js中json处理总结之JSON.parse
2016/10/14 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
JS库之Waypoints的用法详解
2017/09/13 Javascript
vue+swiper实现侧滑菜单效果
2017/12/28 Javascript
小程序实现列表多个批量倒计时
2021/01/29 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
Vue2.0实现简单分页及跳转效果
2019/07/29 Javascript
浅谈关于vue中scss公用的解决方案
2019/12/02 Javascript
node.js中fs文件系统模块的使用方法实例详解
2020/02/13 Javascript
基于Vue.js+Nuxt开发自定义弹出层组件
2020/10/09 Javascript
python3+PyQt5实现拖放功能
2018/04/24 Python
python TF-IDF算法实现文本关键词提取
2019/05/29 Python
Python拼接字符串的7种方式详解
2020/03/19 Python
非功能性需求都包括哪些方面
2013/10/29 面试题
大学生毕业求职的自我评价
2013/09/29 职场文书
组织关系转移介绍信
2014/01/16 职场文书
共筑中国梦演讲稿
2014/04/23 职场文书
《称象》教学反思
2014/04/25 职场文书
教师评语大全
2014/04/28 职场文书
说明书范文
2014/05/07 职场文书
小学教师暑期培训方案
2014/08/28 职场文书
乡镇党员群众路线教育实践活动对照检查材料思想汇报
2014/10/05 职场文书
2014年党建工作汇报材料
2014/10/27 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
先进个人推荐材料
2014/12/29 职场文书
正确的理解和使用Django信号(Signals)
2021/04/14 Python