基于PHP magic_quotes_gpc的使用方法详解


Posted in PHP onJune 24, 2013

PHP magic_quotes_gpc主要是作用在WEB客户服务端的,它的作用时间是从请求开始,接下来我们将具体的为大家讲解它的使用方式。
AD:
我们今天要向大家介绍的是PHP magic_quotes_gpc的具体使用方法。大家都知道在PHP中一个特殊的函数魔术函数,它在引用的过程中只有在传递$_GET,$_POST,$_COOKIE时才会发生作用。
•PHP函数preg_split的正确使用方法
•解读PHP函数explode()的具体使用方法
•PHP函数implode()与explode()函数的不同
•PHP类CMS如何自动获取关键字
•探讨PHP函数split()如何使用正则表达式切

1.
条件:PHP magic_quotes_gpc=off
写入数据库的字符串未经过任何过滤处理。从数据库读出的字符串也未作任何处理。
数据:$data=”snow”''sun” ; (snow和sun之间是四个连续的单引号).
操作:将字符串:”snow”''sun” 写入数据库,
结果:出现sql语句错误,mysql不能顺利完成sql语句,写入数据库失败。
数据库保存格式:无数据。
输出数据格式:无数据。
说明: 对于未经处理的单引号在写入数据库时会使sql语句发生错误。

2.
条件:PHP magic_quotes_gpc=off
写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。
数据:$data=”snow”''sun” ; (snow和sun之间是四个连续的单引号).
操作:将字符串:”snow”''sun” 写入数据库,
结果:sql语句顺利执行,数据成功写入数据库
数据库保存格式:snow”''sun (和输入一样)
输出数据格式:snow”''sun (和输入一样)
说明: addslashes()函数将单引号转换为\'的转义字符使sql语句成功执行,
但\'并未作为数据存入数据库,数据库保存的是snow”''sun 而并不是我们想象的snow\'\'\'\'sun

3.
条件:PHP magic_quotes_gpc=on
写入数据库的字符串未经过任何处理。从数据库读出的字符串未作任何处理。
数据:$data=”snow”''sun” ; (snow和sun之间是四个连续的单引号).
操作:将字符串:”snow”''sun” 写入数据库,
结果:sql语句顺利执行,数据成功写入数据库
数据库保存格式:snow”''sun (和输入一样)
输出数据格式:snow”''sun (和输入一样)
说明: PHP magic_quotes_gpc=on 将单引号转换为\'的转义字符使sql语句成功执行,
但\'并未作为数据入数据库,数据库保存的是snow”''sun而并不是我们想象的snow\'\'\'\'sun。

4.
条件:PHP magic_quotes_gpc=on
写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。
数据:$data=”snow”''sun” ; (snow和sun之间是四个连续的单引号).
操作:将字符串:”snow”''sun” 写入数据库,
结果:sql语句顺利执行,数据成功写入数据库
数据库保存格式:snow\'\'\'\'sun (添加了转义字符)
输出数据格式:snow\'\'\'\'sun (添加了转义字符)
说明: PHP magic_quotes_gpc=on 将单引号转换为\'的转义字符使sql语句成功执行,
addslashes又将即将写入数据库的单引号转换为\',后者的转换被作为数据写入
数据库,数据库保存的是snow\'\'\'\'sun

总结如下:
1. 对于PHP magic_quotes_gpc=on的情况,
我们可以不对输入和输出数据库的字符串数据作
addslashes()和stripslashes()的操作,数据也会正常显示。
如果此时你对输入的数据作了addslashes()处理,
那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。

2. 对于PHP magic_quotes_gpc=off 的情况
必须使用addslashes()对输入数据进行处理,但并不需要使用stripslashes()格式化输出
因为addslashes()并未将反斜杠一起写入数据库,只是帮助mysql完成了sql语句的执行。

补充:
PHP magic_quotes_gpc作用范围是:WEB客户服务端;作用时间:请求开始时,例如当脚本运行时.
magic_quotes_runtime 作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;作用时间:每次当脚本访问运行状态中产生的数据

PHP 相关文章推荐
十天学会php之第一天
Oct 09 PHP
PHP IF ELSE简化/三元一次式的使用
Aug 22 PHP
PHP setcookie指定domain参数后,在IE下设置cookie失效的解决方法
Sep 09 PHP
20个PHP常用类库小结
Sep 11 PHP
PHP常用开发函数解析之数组篇[未完结]
Jul 30 PHP
ThinkPHP中ajax使用实例教程
Aug 22 PHP
PHP批量去除BOM头代码分享
Jun 26 PHP
PHP入门教程之面向对象基本概念实例分析
Sep 11 PHP
php 自定义错误日志实例详解
Nov 12 PHP
php empty 函数判断结果为空但实际值却为非空的原因解析
May 28 PHP
PHP mongodb操作类定义与用法示例【适合mongodb2.x和mongodb3.x】
Jun 16 PHP
解决laravel session失效的问题
Oct 14 PHP
解析php dirname()与__FILE__常量的应用
Jun 24 #PHP
解析mysql中UNIX_TIMESTAMP()函数与php中time()函数的区别
Jun 24 #PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 #PHP
解析yahoo邮件用phpmailer发送的实例
Jun 24 #PHP
163的邮件用phpmailer发送(实例详解)
Jun 24 #PHP
phpmailer发送gmail邮件实例详解
Jun 24 #PHP
深入php中var_dump方法的使用详解
Jun 24 #PHP
You might like
PHP面向对象之旅:深入理解static变量与方法
2014/01/06 PHP
php读取纯真ip数据库使用示例
2014/01/26 PHP
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
Laravel5.1自定义500错误页面示例
2016/10/09 PHP
Javascript开发之三数组对象实例介绍
2012/11/12 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
jquery.validate表单验证插件使用详解
2017/06/21 jQuery
Angular实现响应式表单
2017/08/04 Javascript
JS去掉字符串末尾的标点符号及删除最后一个字符的方法
2017/10/24 Javascript
vue-cli项目代理proxyTable配置exclude的方法
2018/09/20 Javascript
JavaScript模板引擎原理与用法详解
2018/12/24 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
使用jQuery实现购物车
2020/10/29 jQuery
[53:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第三场 1月18日
2021/03/11 DOTA
Python导出DBF文件到Excel的方法
2015/07/25 Python
python中利用xml.dom模块解析xml的方法教程
2017/05/24 Python
Python Numpy 数组的初始化和基本操作
2018/03/13 Python
pyqt5实现登录界面的模板
2020/05/30 Python
用 Python 制作地球仪的方法
2020/04/24 Python
Python接口测试环境搭建过程详解
2020/06/29 Python
Python 实现键盘鼠标按键模拟
2020/11/18 Python
网页中的电话号码如何实现一键直呼效果_附示例
2016/03/15 HTML / CSS
借助HTML5 Canvas来绘制三角形和矩形等多边形的方法
2016/03/14 HTML / CSS
html5理解head_动力节点Java学院整理
2017/07/13 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
无谷物狗粮:Pooch & Mutt
2018/05/23 全球购物
EMU Australia澳大利亚官网:澳大利亚本土雪地靴品牌
2019/07/24 全球购物
实习生自我鉴定
2013/12/12 职场文书
入团介绍人意见范文
2015/06/04 职场文书
新学期开学标语2015
2015/07/16 职场文书
2016年感恩教师节活动总结
2016/04/01 职场文书
送给小学生的暑假礼物!小学生必背99首古诗
2019/07/02 职场文书
为什么不建议在go项目中使用init()
2021/04/12 Golang
Spring boot应用启动后首次访问很慢的解决方案
2021/06/23 Java/Android