我有一个Ubuntu 10.04服务器,运行PHP 5.3.2,我已经在我的php.ini文件中设置这些行:magic_quotes的不会消失
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
有没有其他的php.ini文件(我搜索了整个硬盘驱动器),我检查了所有的apache2配置文件(包括整个硬盘上的所有.htaccess文件),并且其他地方都没有引用。
但是:
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
var_dump(get_magic_quotes_gpc());
?>
产生这样的输出:int(1)
也就是说,魔术引号都在,这是通过将任何类型的带引号的要求容易核查,它们将被报出来。 我已通过添加以下到我的根.htaccess文件固定此:
php_flag magic_quotes_gpc Off
上述代码现在产生所期望的结果:int(0)
,并且没有输出被引用。
所以问题:为什么,亲爱的上帝为什么,首先是魔术引号?是的,我知道这个问题是similar to others已被问及。我不是在寻找“快速修复”,是的,我知道魔术引号将被删除在PHP 5.4。但事实是,在5.4出现后(不同的客户端等),我需要维持向后兼容性几年,所以我试图弄清为什么魔术引号出现了。我知道我可以通过在我的根.htaccess文件中添加一行来解决这个问题(如我所示),但我更愿意更好地理解我的php.ini设置如何在首位被覆盖。
那么,有没有人有任何想法如何可以打开?
我重置不仅阿帕奇,但重新启动整个服务器(多次)。重置不会修复它。至于Debian/Ubuntu维护者,他们如何解决apache和php配置文件?你是说这是由操作系统处理的东西吗?如果是这样,为什么.htaccess文件绕过它,你能提供任何证据这就是发生了什么? – cegfault 2012-03-06 09:25:51