基于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可能遇到的问题“无法载入mysql扩展” 的解决方法
Apr 16 PHP
Cannot modify header information错误解决方法
Oct 08 PHP
php页面缓存ob系列函数介绍
Oct 18 PHP
将FCKeditor导入PHP+SMARTY的实现方法
Jan 15 PHP
php实现微信公众号主动推送消息
Dec 31 PHP
WordPress中重置文章循环的rewind_posts()函数讲解
Jan 11 PHP
PHP+MySQL存储数据常见中文乱码问题小结
Jun 13 PHP
PHP面试常用算法(推荐)
Jul 22 PHP
PHP+jquery+CSS制作头像登录窗(仿QQ登陆)
Oct 20 PHP
PHP基于反射机制实现插件的可插拔设计详解
Nov 10 PHP
PHP实现的最大正向匹配算法示例
Dec 19 PHP
PHP常用函数之获取汉字首字母功能示例
Oct 21 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 Google的translate API代码
2008/12/10 PHP
PHP编程过程中需要了解的this,self,parent的区别
2009/12/30 PHP
PHP ignore_user_abort函数详细介绍和使用实例
2014/07/15 PHP
ThinkPHP框架下微信支付功能总结踩坑笔记
2019/04/10 PHP
javascript 获取页面的高度及滚动条的位置的代码
2010/05/06 Javascript
浅谈javascript的原型继承
2012/07/25 Javascript
自己使用js/jquery写的一个定制对话框控件
2014/05/02 Javascript
js的延迟执行问题分析
2014/06/23 Javascript
jQuery中append()方法用法实例
2014/12/25 Javascript
JS实现点击按钮自动增加一个单元格的方法
2015/03/09 Javascript
jQuery幻灯片带缩略图轮播效果代码分享
2015/08/17 Javascript
javascript中tostring()和valueof()的用法及两者的区别
2015/11/16 Javascript
Node.js文件操作方法汇总
2016/03/22 Javascript
js实现点击图片自动提交action的简单方法
2016/10/16 Javascript
vue.js中v-on:textInput无法执行事件问题的解决过程
2017/07/12 Javascript
微信小程序数据分析之自定义分析的实现
2018/08/17 Javascript
jQuery实现的隔行变色功能【案例】
2019/02/18 jQuery
element-ui组件table实现自定义筛选功能的示例代码
2019/03/15 Javascript
iview的table组件自带的过滤器实现
2019/07/12 Javascript
vue实现输入一位数字转汉字功能
2019/12/13 Javascript
vue实现防抖的实例代码
2021/01/11 Vue.js
Python help()函数用法详解
2014/03/11 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
2016/01/20 Python
Python中内建函数的简单用法说明
2016/05/05 Python
Python实现的寻找前5个默尼森数算法示例
2018/03/25 Python
python安装dlib库报错问题及解决方法
2020/03/16 Python
python zip,lambda,map函数代码实例
2020/04/04 Python
CSS3 实现footer 固定在底部(无论页面多高始终在底部)
2019/10/15 HTML / CSS
光盘行动倡议书
2014/02/02 职场文书
本科生自荐信
2014/06/18 职场文书
课内比教学心得体会
2014/09/09 职场文书
教师批评与自我批评发言稿
2014/10/15 职场文书
民主生活会批评与自我批评总结
2014/10/17 职场文书
2015入党自传格式范文
2015/06/26 职场文书
优质服务心得体会(共4篇)
2016/01/22 职场文书
python Tkinter的简单入门教程
2021/04/11 Python