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扩展函数
Oct 09 PHP
常用的php对象类型判断
Aug 27 PHP
smarty的保留变量问题
Oct 23 PHP
PHP 程序员的调试技术小结
Nov 15 PHP
PHP读取文件并可支持远程文件的代码分享
Oct 03 PHP
PHP递归调用的小技巧讲解
Feb 19 PHP
5种PHP创建数组的实例代码分享
Jan 17 PHP
PHP实现清除MySQL死连接的方法
Jul 23 PHP
PHP中类型转换 ,常量,系统常量,魔术常量的详解
Oct 26 PHP
tp5.1 框架数据库常见操作详解【添加、删除、更新、查询】
May 26 PHP
如何在PHP中使用AES加密算法加密数据
Jun 24 PHP
Thinkphp极验滑动验证码实现步骤解析
Nov 24 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
2019年漫画销量排行榜:鬼灭登顶 海贼单卷制霸 尾田盛赞鬼灭
2020/03/08 日漫
一步一步学习PHP(8) php 数组
2010/03/05 PHP
发一个php简单的伪原创程序,配合商城采集用的
2010/10/12 PHP
PHP setcookie设置Cookie用法(及设置无效的问题)
2011/07/13 PHP
php利用反射实现插件机制的方法
2015/03/14 PHP
PHP导出Excel实例讲解
2016/01/24 PHP
PHP+MySQL实现消息队列的方法分析
2018/05/09 PHP
Dojo 学习要点
2010/09/03 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
2013/12/18 Javascript
使用js实现一个可编辑的select下拉列表
2014/02/20 Javascript
浅谈JavaScript Array对象
2014/12/29 Javascript
JavaScript设计模式之策略模式详解
2017/06/09 Javascript
ES6中的Promise代码详解
2017/10/09 Javascript
利用Vue2.x开发实现JSON树的方法
2018/01/04 Javascript
node 文件上传接口的转发的实现
2019/09/23 Javascript
JS实现联想、自动补齐国家或地区名称的功能
2020/07/07 Javascript
python抓取网页内容示例分享
2014/02/24 Python
Python判断某个用户对某个文件的权限
2016/10/13 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
2017/03/19 Python
Python学习小技巧之列表项的排序
2017/05/20 Python
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
利用python、tensorflow、opencv、pyqt5实现人脸实时签到系统
2019/09/25 Python
python去除删除数据中\u0000\u0001等unicode字符串的代码
2020/03/06 Python
python属于软件吗
2020/06/18 Python
C++是不是类型安全的
2014/02/18 面试题
Java的类与C++的类有什么不同
2014/01/18 面试题
任课老师推荐信范文
2013/11/24 职场文书
应届大学生自荐信
2013/12/05 职场文书
护理专业大学生自我推荐信
2014/01/25 职场文书
保险经纪人求职信
2014/03/11 职场文书
小学数学教研活动总结
2014/07/01 职场文书
生日赠语
2015/06/23 职场文书
2016年基层党组织创先争优承诺书
2016/03/25 职场文书
使用 JavaScript 制作页面效果
2021/04/21 Javascript
阿里云ECS云服务器快照的概念以及如何使用
2022/04/21 Servers