php mysql自动反转义_ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法...
这篇文章主要介绍了ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法,主要通过针对magic_quotes_gpc开启的情况下进行检查与判断转义来实现,需要的朋友可以参考下
本文实例讲述了ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法。分享给大家供大家参考。具体方法如下:
这种情况是在 magic_quotes_gpc 开启的情况下发生的。原因是thinkphp在入库的时候没有判断 magic_quotes_gpc 是否开启,不管三七二十一地进行了转义处理。
解决办法是在入口文件增加如下代码则可:
if (!get_magic_quotes_gpc()) {
function addslashes_deep($value) {
$value = is_array($value) ?
array_map('addslashes_deep', $value) :
addslashes($value);
return $value;
}
$_POST = array_map('addslashes_deep', $_POST);
$_GET = array_map('addslashes_deep', $_GET);
$_COOKIE = array_map('addslashes_deep', $_COOKIE);
$_REQUEST = array_map('addslashes_deep', $_REQUEST);
}
有人这样修改DbMysql.class.php中的转义函数:
public function escape_string($str) {
if (get_magic_quotes_gpc()) {
return $str;
}
if($this->_linkID) {
return mysql_real_escape_string($str,$this->_linkID);
}else{
return mysql_escape_string($str);
}
}
其实这种方法并不可取!因为如果魔术函数on时,而$str又不是post或get得来(比如读取文本、数据库),它还是没加反斜线。
所以我不管$str是否已经被转义,一律先去除转义,然后再加上转义。这样就避免了二次转义,也避免了遗漏转义。
下面是我的修改方法:
public function escape_string($str) {
$str = stripslashes($str);
if($this->_linkID) {
return mysql_real_escape_string($str,$this->_linkID);
}else{
return mysql_escape_string($str);
}
}
希望本文所述对大家的ThinkPHP框架程序设计有所帮助。
php mysql自动反转义_ThinkPHP入库出现两次反斜线转义及数据库类转义的解决方法...相关推荐
- mysql配置服务器失败怎么办_安装程序配置服务器失败怎么办?数据库配置失败的解决方法...
安装程序配置服务器失败怎么办?近期使用数据库SQL Server 2000的用户反应无法使用的现象,在运行的时候出现了"安装程序配置服务器失败"的提示该怎么办呢?该问题是在运行SQ ...
- pycharm连接mysql1193错误_pycharm连接mysql数据库提示错误的解决方法_数据库
忘记phpmyadmin密码怎么重置_数据库 重置phpmyadmin密码的方法是:1.停止mysql服务:2.跳过验证启动mysql:3.重新设置密码:4.更新权限:5.重新启动mysql,如[ki ...
- idea连接不了5.6mysql_IDEA无法连接mysql数据库的6种解决方法大全
本文主要介绍了IDEA无法连接mysql数据库的6种解决方法大全,分享给大家,具体如下: 1.本地的mysql没有创建该数据库(笔者就是这个原因!) 查看数据库发现没有,重建就可以了 测试成功! 网上 ...
- CentOS6.8下MySQL数据库忘记root密码解决方法
CentOS6.8下MySQL数据库忘记root密码解决方法 参考文章: (1)CentOS6.8下MySQL数据库忘记root密码解决方法 (2)https://www.cnblogs.com/vu ...
- idea无法连接mysql_IDEA无法连接mysql数据库的6种解决方法大全
IDEA无法连接mysql数据库的6种解决方法大全 本文主要介绍了IDEA无法连接mysql数据库的6种解决方法大全,分享给大家,具体如下: 1.本地的mysql没有创建该数据库(笔者就是这个原因!) ...
- mysql报错ERROR 1206 (HY000): The total number of locks exceeds the lock table size的解决方法...
1. 问题背景 InnoDB是新版MySQL(v5.5及以后)默认的存储引擎,之前版本的默认引擎为MyISAM,因此,低于5.5版本的mysql配置文件.my.cnf中,关于InnoD ...
- MYSQL描述选课系统的问题与_mysql+php实现选课系统中遇到的问题及解决方法
首先是一些mysql 的基本命令 删除表格 drop ; 约束条件 : primary key 设置为主键 unique 值唯一 not null 非空 foreighn key(ke ...
- sql语句创建mysql数据库常见错误以及解决方法
Error Code: 1366. Incorrect string value: '\xE5\xAD\xA6\xE5\xB7\xA5...' 将该表中的每一列的字符集都改为utf-8 ...
- mysql+concat函数问题_Mysql5.7中使用group concat函数数据被截断的问题完美解决方法...
前天在生产环境中遇到一个问题:使用 GROUP_CONCAT函数select出来的数据被截断了,最长长度不超过1024字节,开始还以为是navicat客户端自身对字段长度做了限制的问题.后面故意重新I ...
最新文章
- Docker完整建站详介
- SGU 282 Isomorphism
- 实体银行网点一定被消灭?银行如何平衡数字创新与线下体验?
- LoadRunner常用函数(转)
- 【今日CS 视觉论文速览】Mon, 14 Jan 2019
- 87-Moving average of oscillator,移动平均振荡指标.(2015.7.4)
- Qt编程环境下学习《OpenGL编程指南(原书第九版)》(一)
- 极品抓鸡36课------8080端口入侵笔记
- 博途 V14安装教程
- matplotlib绘图并导出eps矢量图和svg矢量图
- 数据分析师的职业发展路径是怎样的?
- GNSS观测数据下载地址
- 计算机开机后报rundll,图文教你win10开机出现rundll无法找到入口的解决方法
- 2.4G双向系统超低成本之选--Ci24R1小尺寸 DFN8/2*2
- 教育类型网站用户体验分析——以UMU学习平台、学生安全教育平台、师路南通为例...
- Discuz!教程之门户列表页文章中无图片时,从图库中选择一张作为封面
- 4部网页配色电子书库之第4部——网站配色方案赏析
- Github 配置SSH key 下载项目并关联
- Bugku旧平台web writeup
- Android 通过MediaMetadataRetriever获取视频封面和时长
热门文章
- 如何 方法内指令重排 进制_Java虚拟机jvm学习一:认识jvm的运行机制
- 物理学与计算机相关参考文献,物理学专业论文参考文献
- mac学python_新手小白学Python必备编程利器Pycharm快捷键大全(Win+Mac)
- QT每日一练day12:QDailog
- 相机模型之世界坐标、相机坐标、归一化坐标、图像坐标、像素坐标、内参、外参、转换关系总结
- C语言之数组探究(一):定义、大小、初始化、访问和三要素
- java类加载器分类_Java 类加载器的种类
- python rarfile不支持unicode_python – zipfile提取时的unicode错误
- portal认证 php,如何用PHP制作OSSH 免费版华为Portal系统认证前端页面
- 处理mp3_如何把MP3转换成FLAC格式?这三个方法简单快速