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 相关文章推荐
VML绘图板②脚本--VMLgraph.js、XMLtool.js
Oct 09 PHP
基于qmail的完整WEBMAIL解决方案安装详解
Oct 09 PHP
PHP之COOKIE支持详解
Sep 20 PHP
php中一个完整表单处理实现代码
Nov 10 PHP
使用PHP计算两个路径的相对路径
Jun 14 PHP
改写函数实现PHP二维/三维数组转字符串
Sep 13 PHP
去掉destoon资讯内容页keywords关键字自带的文章标题的方法
Aug 21 PHP
php强制运行广告的方法
Dec 01 PHP
php数组键值用法实例分析
Feb 27 PHP
PHP计算指定日期所在周的开始和结束日期的方法
Mar 24 PHP
Yii2中添加全局函数的方法分析
May 04 PHP
php菜单/评论数据递归分级算法的实现方法
Aug 01 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中DOMDocument简单用法示例代码(XML创建、添加、删除、修改)
2010/12/19 PHP
php提交过来的数据生成为txt文件
2016/04/28 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
PHP实现的数组和XML文件相互转换功能示例
2018/03/15 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
2018/04/20 PHP
Gird事件机制初级读本
2007/03/10 Javascript
Javascript Select操作大集合
2009/05/26 Javascript
Jquery 动态添加按钮实现代码
2010/05/06 Javascript
Jquery 插件开发笔记整理
2011/01/17 Javascript
jquery easyui滚动条部分设置介绍
2013/09/12 Javascript
js 剪切板的用法(clipboardData.setData)与js match函数介绍
2013/11/19 Javascript
jQuery基础语法实例入门
2014/12/23 Javascript
jquery操作select方法汇总
2015/02/05 Javascript
JavaScript子窗口调用父窗口变量和函数的方法
2015/10/09 Javascript
JQuery中Ajax的操作完整例子
2017/03/07 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
小程序实现展开/收起的效果示例
2018/09/22 Javascript
在Vue中使用Echarts实例图的方法实例
2020/10/10 Javascript
python中的内置函数getattr()介绍及示例
2014/07/20 Python
Python2.6版本中实现字典推导 PEP 274(Dict Comprehensions)
2015/04/28 Python
python 分离文件名和路径以及分离文件名和后缀的方法
2018/10/21 Python
Python用字典构建多级菜单功能
2019/07/11 Python
使用 Django Highcharts 实现数据可视化过程解析
2019/07/31 Python
Python遍历字典方式就实例详解
2019/12/28 Python
python实现FTP文件传输的方法(服务器端和客户端)
2020/03/20 Python
自荐信封面
2013/12/04 职场文书
四年级数学教学反思
2014/02/02 职场文书
总裁助理岗位职责
2014/02/17 职场文书
简单的项目建议书模板
2014/03/12 职场文书
目标责任书格式
2014/07/28 职场文书
关于读书的演讲稿300字
2014/08/27 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
运动员入场词
2015/07/18 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书
Ruby使用Mysql2连接操作MySQL
2022/04/19 Ruby