文档章节

thinkphp使用Ueditor编辑器写入数据库单双引号转义问题

KavenSu
 KavenSu
发布于 2014/06/27 18:33
字数 535
阅读 2056
收藏 7

http://www.poluoluo.com/jzxy/201208/172927.html

thinkphp使用Ueditor编辑器写入数据库单双引号转义问题

Posted by 萧猫 on 十二月 18, 2013
开发备忘/语录

在ThinkPHP中提交表单插入数据的时候,单引号和双引号是会自动转义的,就是会自动的加上反斜线,

但是我不想给单引号和双引号加上反斜线,

如:hds”gh”j’g’h

自动转义为:hds\”gh\”j\’g\’h

请注意需要的是取消这个转义的功能,而不是使用stripslashes() 函数删除这些反斜杠,即不需要官方的这个自动转义的功能。

所以在网上搜索到解决方法:

1,在thinkphp目录下,依次打开 ThinkPHP\Lib\Driver\Db 目录,并在dbmysql.class.php 这个文件中把escapeString 函数的函数修改成:



   
   
/**
    * SQL指令安全过滤
    * @access public
    * @param string $str  SQL字符串 * @return string
    */ 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; } }

原函数:


/**
     * SQL指令安全过滤
     * @access public
     * @param string $str  SQL字符串 * @return string
     */ 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起冲突的了。所以加一层判断,就可以很好的解决这个问题了。

Tags: thinkphp, ueditor, 双引号, 转义

 

本文转载自:

上一篇: ASP.NET 使用说明
KavenSu
粉丝 6
博文 66
码字总数 16605
作品 0
深圳
私信 提问
Thinkphp整合最新Ueditor编辑器

说到最新的富文本编辑器的确不少(ckeditor、fkeditor、ueditor),这些富文本编辑器如果单独使用基本上很方便,不需要做额外的配置,只要把官方的插件下载下来放到一个web容器中,看看 插件中提...

nsns
2018/08/24
123
0
ThinkCMFX 1.0 发布啦!基于 ThinkPHP 3.2.2 框架

ThinkCMFX1.0是在ThinkCMF V1.1.1基础上采用最新的ThinkPHP 3.2.2框架的特别版本,以满足更高端用户需求,支持PHP 5.3.0+,请php5.2用户仍然在原来ThinkCMF V1.1.1上开发,我们仍会持续对Thi...

ThinkCMF
2014/07/09
4.5K
10
新手指导Thinkphp开发指南

小编于昨日参加朋友婚礼,浑身喜气洋洋。今天给用户带来的是关于thinkphp开发指南的纯技术性的文档,本文档目的很简单: 1、 帮助开发人员掌握thinkphp入门 2、 快速利用thinkphp进行项目开发...

汤圆
2012/12/25
324
1
thinkphp add()在防止sql注入时使用escape_string时出现的问题

我使用thinkphp的add()直接向数据库中插入数据 本机测试,当输入的内容中含有\,',"时,thinkphp自动使用escape_string进行了转义 所以用户输入can't,执行sql插入时为:can\'t。存入数据库的也...

此人已死,有事烧纸
2012/04/21
1K
2
网站有漏洞被攻击篡改了数据该怎么修复解决

2019年1月14日消息,thinkphp又被爆出致命漏洞,可以直接远程代码执行,getshell提权写入网站木马到网站根目录,甚至直接提权到服务器,该漏洞影响版本ThinkPHP 5.0、ThinkPHP 5.0.10、Think...

网站安全
01/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

开发中常用的正则表达式

为了能够更好地理解如何在C#环境中使用正则表达式,这里整理了一些常用的正则表达式: 罗马数字: string p1 = "^m*(d?c{0,3}|c[dm])" + "(l?x{0,3}|x[lc])(v?i{0,3}|i[vx])$"; string t1 =......

木庄
9分钟前
3
0
【.NET程序打包】VS2019使用Installer Projects打包

C#—使用Installer Projects打包桌面应用程序 前言 打包桌面应用程序实在是一个不常使用的东西,偶尔使用起来经常会忘东忘西的耽误时间,因此,这篇文章多以图片记录过程,也是用于备忘。 下...

_Somuns
13分钟前
2
0
自定义注解,使用动态代理解决网站的字符集编码问题

第1章设置环境 安装操作系统,安装备份(镜像): JDK: 设置环境变量Eclipse:解压即可 Eclipse自身解压目录不包括中文 代码工作空间目录不包括中文Tomcat:解压不要包含中文目录M...

蓝来杯往
18分钟前
2
0
Solr中的字段类型field type

Solr含有多种字段类型,可用的字段类型基本都定义在了包org.apache.solr.schema中,列举如下: 类 说明 BinaryField 二进制数据 BoolField 布尔值,其中’t’/’T’/’1’都是true Collatio...

gantaos
32分钟前
3
0
《JAVA核心知识》学习笔记 (21. JAVA 算法)

21. JAVA 算法

Shingfi
39分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部