基于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和ACCESS写聊天室(六)
Oct 09 PHP
FleaPHP的安全设置方法
Sep 15 PHP
解析如何屏蔽php中的phpinfo()函数
Jun 06 PHP
一个PHP的远程图片抓取函数分享
Sep 25 PHP
php 中文字符串首字母的获取函数分享
Nov 04 PHP
PHP四舍五入精确小数位及取整
Jan 14 PHP
php使用qr生成二维码的示例分享
Jan 20 PHP
ThinkPHP Mobile使用方法简明教程
Jun 18 PHP
浅谈php正则表达式中的非贪婪模式匹配的使用
Nov 25 PHP
轻松实现php文件上传功能
Feb 17 PHP
PHP+MariaDB数据库操作基本技巧备忘总结
May 21 PHP
PHP 进程池与轮询调度算法实现多任务的示例代码
Nov 26 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 UTF8 文件的签名问题
2009/10/30 PHP
队列在编程中的实际应用(php)
2010/09/04 PHP
php的list()的一步操作给一组变量进行赋值的使用
2011/05/18 PHP
PHP常用的缓存技术汇总
2014/05/05 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
php猜单词游戏
2015/09/29 PHP
php上传大文件失败的原因及应对策略
2015/10/20 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
PHP实现随机生成水印图片功能
2017/03/22 PHP
通过身份证号得到出生日期和性别的js代码
2009/11/23 Javascript
jquery 简单图片导航插件jquery.imgNav.js
2010/03/17 Javascript
js给onclick赋值传参数的两种方法
2013/11/25 Javascript
JavaScript中判断整字类型最简洁的实现方法
2014/11/08 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
JS实现简单的图书馆享元模式实例
2015/06/30 Javascript
js实现简洁的TAB滑动门效果代码
2015/09/06 Javascript
详解页面滚动值scrollTop在FireFox与Chrome浏览器间的兼容问题
2015/12/03 Javascript
基于jquery实现的鼠标悬停提示案例
2016/12/11 Javascript
vue防止花括号{{}}闪烁v-text和v-html、v-cloak用法示例
2019/03/13 Javascript
解决父组件将子组件作为弹窗调用只执行一次created的问题
2020/07/24 Javascript
python读取二进制mnist实例详解
2017/05/31 Python
使用python读取csv文件快速插入数据库的实例
2018/06/21 Python
python设计tcp数据包协议类的例子
2019/07/23 Python
Python学习笔记之列表和成员运算符及列表相关方法详解
2019/08/22 Python
python getpass实现密文实例详解
2019/09/24 Python
python 解决cv2绘制中文乱码问题
2019/12/23 Python
通过Turtle库在Python中绘制一个鼠年福鼠
2020/02/03 Python
Python计算IV值的示例讲解
2020/02/28 Python
Python异常处理机制结构实例解析
2020/07/23 Python
20行代码教你用python给证件照换底色的方法示例
2021/02/05 Python
xml有哪些解析技术?区别是什么
2016/04/26 面试题
如何查找网页漏洞
2016/06/22 面试题
文明寝室申报材料
2014/05/12 职场文书
行政专员岗位职责说明书
2014/09/01 职场文书
教师查摆问题自查报告
2014/10/11 职场文书
《你在为谁工作》心得体会(共8篇)
2016/01/20 职场文书