PHP6取消了get_magic_quotes_gpc函数
把服务器的PHP版本升到6以后,发现系统彻底空白,猜到是PHP程序运行时出问题了,逐步调试了一下,原来get_magic_quotes_gpc函数的问题,也就是下面这段代码的地方:
if (!get_magic_quotes_gpc()) { $_REQUEST = array_map( 'addslashes', $_REQUEST); }
查了一下原来PHP6取消了magic quotes机制,那么就默认转义一下一些特殊字符来防止SQL注入吧,代码改为如下:
if(PHP_VERSION >= 6 || !get_magic_quotes_gpc()) { $_REQUEST = array_map( 'addslashes', $_REQUEST); }
系统运行正常了。
在Discuz里遇到了很多类似如下的代码:
define('MAGIC_QUOTES_GPC', get_magic_quotes_gpc());
那就改成这样吧
define('MAGIC_QUOTES_GPC', PHP_VERSION < 6 && get_magic_quotes_gpc());
P.S. mysql_real_escaple_string函数在php6下也遇到了问题,会导致httpd.exe出错,但从文档来看并没有找到依据,姑且用addslashes替代来解决了;有知道原因的同学烦请告知下。
标签: PHP
get_magic_quotes_gpc 这个函数,确实在各个版本中不同的用法!深夜谷歌一个关于php的问题,来到你的博客,算一种缘分,看了博主一些文章,很多地方值得学习!个人也是喜欢程序开发,近期在研究PHP,希望能互换友链,常来常往,多多指教!博主友链已加上,O(∩_∩)O~
[回复]
晴枫 4月 5th, 2012 下午8:53 回复:
@Unvs, 不知道你的RSS订阅地址是什么,订阅一下方便看
[回复]
Unvs 4月 6th, 2012 下午10:53 回复:
@晴枫, feed地址是这个:http://blog.unvs.cn/feed.asp,
首页被我隐藏了,看来得放出来。博主,可以把我的友链描述改为:专注net技术,涉足商务领域,谢谢了。O(∩_∩)O~
[回复]
一直还未研读PHP6。。
[回复]
php还是5.2、5.3版本稳定些。
[回复]