基于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 相关文章推荐
获得Google PR值的PHP代码
Jan 28 PHP
JS中encodeURIComponent函数用php解码的代码
Mar 01 PHP
PHP中设置时区方法小结
Jun 03 PHP
用Zend Studio+PHPnow+Zend Debugger搭建PHP服务器调试环境步骤
Jan 19 PHP
php curl请求信息和返回信息设置代码实例
Apr 27 PHP
WordPress中调试缩略图的相关PHP函数使用解析
Jan 07 PHP
PHP基于GD库的图像处理方法小结
Sep 27 PHP
Yii框架实现邮箱激活的方法【数字签名】
Oct 18 PHP
PHP对象相关知识总结
Apr 09 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 PHP
php-msf源码详解
Dec 25 PHP
yii2 在控制器中验证请求参数的使用方法
Jun 19 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下过滤html代码的函数 提高程序安全性
2010/03/02 PHP
从手册去理解分析PHP session机制
2011/07/17 PHP
php类自动装载、链式操作、魔术方法实现代码
2017/07/23 PHP
PHP与Web页面的交互示例详解一
2020/08/04 PHP
弹出广告特效(一个IP只弹出一次)的代码
2007/07/27 Javascript
JS在IE和FireFox之间常用函数的区别小结
2010/03/12 Javascript
关于捕获用户何时点击window.onbeforeunload的取消事件
2011/03/06 Javascript
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
javascript学习笔记(七) js函数介绍
2012/06/19 Javascript
利用JS解决ie6不支持max-width,max-height问题的方法
2014/01/02 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
jQuery带时间的日期控件代码分享
2015/08/26 Javascript
JS实现超简单的仿QQ折叠菜单效果
2015/09/21 Javascript
angularjs表格ng-table使用备忘录
2016/03/09 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
简单几步实现返回顶部效果
2016/12/05 Javascript
JS中绑定事件顺序(事件冒泡与事件捕获区别)
2017/01/24 Javascript
js转换对象为xml
2017/02/17 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
jQuery选择器中的特殊符号处理方法
2017/09/08 jQuery
vue-cli3 DllPlugin 提取公用库的方法
2019/04/24 Javascript
JS实现动态星空背景效果
2019/11/01 Javascript
[01:05:52]DOTA2-DPC中国联赛 正赛 Ehome vs Aster BO3 第一场 2月2日
2021/03/11 DOTA
使用Python开发windows GUI程序入门实例
2014/10/23 Python
Python中规范定义命名空间的一些建议
2016/06/04 Python
python多线程socket编程之多客户端接入
2017/09/12 Python
Python饼状图的绘制实例
2019/01/15 Python
python3.4中清屏的处理方法
2020/07/06 Python
python pandas dataframe 去重函数的具体使用
2020/07/20 Python
人力资源经理的岗位职责范本
2014/02/28 职场文书
购房协议书范本(无房产证)
2014/10/07 职场文书
小学见习报告
2014/10/31 职场文书
幼儿园母亲节活动总结
2015/02/10 职场文书
MySQL系列之十三 MySQL的复制
2021/07/02 MySQL
MYSQL优化之数据表碎片整理详解
2022/04/03 MySQL
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript