打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
php magic_quotes_gpc的一点认识与分析
userphoto

2010.09.17

关注
代码: 
1. 
条件: magic_quotes_gpc=off 
写入数据库的字符串未经过任何过滤处理。从数据库读出的字符串也未作任何处理。 

数据:  $data="snow''''sun" ; (snow和sun之间是四个连续的单引号). 

操作: 将字符串:"snow''''sun" 写入数据库, 

结果: 出现sql语句错误,mysql不能顺利完成sql语句,写入数据库失败。 

数据库保存格式:无数据。 

输出数据格式:无数据。 

说明: 对于未经处理的单引号在写入数据库时会使sql语句发生错误。 

代码: 
2. 
条件: magic_quotes_gpc=off 
写入数据库的字符串经过函数addslashes()处理。从数据库读出的字符串未作任何处理。 

数据:  $data="snow''''sun" ; (snow和sun之间是四个连续的单引号). 

操作: 将字符串:"snow''''sun" 写入数据库, 

结果: sql语句顺利执行,数据成功写入数据库 

数据库保存格式:snow''''sun (和输入一样) 

输出数据格式:snow''''sun (和输入一样) 

说明: addslashes()函数将单引号转换为\'的转义字符使sql语句成功执行, 
但\'并未作为数据存入数据库,数据库保存的是snow''''sun 而并不是我们想象的snow\'\'\'\'sun 

代码: 
3. 
条件: magic_quotes_gpc=on 
写入数据库的字符串未经过任何处理。从数据库读出的字符串未作任何处理。 

数据:  $data="snow''''sun" ; (snow和sun之间是四个连续的单引号). 

操作: 将字符串:"snow''''sun" 写入数据库, 

结果: sql语句顺利执行,数据成功写入数据库 

数据库保存格式:snow''''sun (和输入一样) 

输出数据格式:snow''''sun (和输入一样) 

说明: magic_quotes_gpc=on 将单引号转换为\'的转义字符使sql语句成功执行, 
但\'并未作为数据入数据库,数据库保存的是snow''''sun而并不是我们想象的snow\'\'\'\'sun。 

代码: 
4. 
条件: magic_quotes_gpc=on 
写入数据库的字符串经过函数addlashes()处理。从数据库读出的字符串未作任何处理。 

数据:  $data="snow''''sun" ; (snow和sun之间是四个连续的单引号). 

操作: 将字符串:"snow''''sun" 写入数据库, 

结果: sql语句顺利执行,数据成功写入数据库 

数据库保存格式:snow\'\'\'\'sun (添加了转义字符) 

输出数据格式:snow\'\'\'\'sun (添加了转义字符) 

说明: magic_quotes_gpc=on 将单引号转换为\'的转义字符使sql语句成功执行, 
addslashes又将即将写入数据库的单引号转换为\',后者的转换被作为数据写入 
数据库,数据库保存的是snow\'\'\'\'sun 
总结如下: 

1. 对于magic_quotes_gpc=on的情况, 

我们可以不对输入和输出数据库的字符串数据作 
addslashes()和stripslashes()的操作,数据也会正常显示。 

如果此时你对输入的数据作了addslashes()处理, 
那么在输出的时候就必须使用stripslashes()去掉多余的反斜杠。 

2. 对于magic_quotes_gpc=off 的情况 

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

补充: 

magic_quotes_gpc 作用范围是:WEB客户服务端;作用时间:请求开始时,例如当脚本运行时. 
magic_quotes_runtime 作用范围:从文件中读取的数据或执行exec()的结果或是从SQL查询中得到的;作用时间:每次当脚本访问运行状态中产生的数据
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
php中addslashes() ,mysql
php中stripslashes和addslashes的区别
php中addslashes(),htmlspecialchars
处理内容
PHP教程 Magic quotes
详解PHP防范SQL注入的具体方法
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服