基于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中使用XML
Oct 09 PHP
PHP通用分页类page.php[仿google分页]
Aug 31 PHP
php反弹shell实现代码
Apr 22 PHP
php echo()和print()、require()和include()函数区别说明
Mar 27 PHP
php通用防注入程序 推荐
Feb 26 PHP
基于Zend的Config机制的应用分析
May 02 PHP
php生成excel列名超过26列大于Z时的解决方法
Dec 29 PHP
CI框架简单邮件发送类实例
May 18 PHP
php判断用户是否关注微信公众号
Jul 22 PHP
微信网页授权(OAuth2.0) PHP 源码简单实现
Aug 29 PHP
tp5(thinkPHP5)框架数据库Db增删改查常见操作总结
Jan 10 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教程之phpize使用方法
2014/02/12 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
js获取url参数值的两种方式
2013/09/10 Javascript
js实现两个值相加alert出来精确到指定位
2013/09/25 Javascript
JS小游戏之象棋暗棋源码详解
2014/09/25 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
2015/09/11 Javascript
AngularJS学习笔记之依赖注入详解
2016/05/16 Javascript
JS中mouseover和mouseout多次触发问题如何解决
2016/06/06 Javascript
利用Angularjs和Bootstrap前端开发案例实战
2016/08/27 Javascript
简单实现IONIC购物车功能
2017/01/10 Javascript
详解基于angular路由的requireJs按需加载js
2017/01/20 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
React+react-dropzone+node.js实现图片上传的示例代码
2017/08/23 Javascript
jQuery实现所有验证通过方可提交的表单验证
2017/11/21 jQuery
微信小程序实现自定义modal弹窗封装的方法
2018/06/15 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
如何使用puppet替换文件中的string
2018/12/06 Javascript
vue实现简单图片上传
2020/06/30 Javascript
Python中使用gzip模块压缩文件的简单教程
2015/04/08 Python
python获得一个月有多少天的方法
2015/06/04 Python
pandas apply 函数 实现多进程的示例讲解
2018/04/20 Python
python3 pygame实现接小球游戏
2019/05/14 Python
Python面向对象程序设计之静态方法、类方法、属性方法原理与用法分析
2020/03/23 Python
Python reques接口测试框架实现代码
2020/07/28 Python
利用Python发送邮件或发带附件的邮件
2020/11/12 Python
CSS3圆角边框和边界图片效果实例
2016/07/01 HTML / CSS
毕业生自荐书模版
2014/01/04 职场文书
幼儿园小班评语
2014/04/18 职场文书
大学生作弊检讨书
2014/09/11 职场文书
财政专业大学生职业生涯规划书
2014/09/17 职场文书
2014年安全生产工作总结
2014/11/13 职场文书
Linux下搭建SFTP服务器的命令详解
2022/06/25 Servers
Win10玩csgo闪退如何解决?Win10玩csgo闪退的解决方法
2022/07/23 数码科技
Rust中的Struct使用示例详解
2022/08/14 Javascript