魔术引号没有关闭(奇怪的普鲁姆!)

时间:2013-05-08 09:44:54

标签: php

我试图在这些地方关闭魔术引号: /etc/php5/apache2/php.ini /etc/php5/cli/php.ini 我相信他们都是“关闭”。

但它在phpinfo()中仍然是ON!这是我的phpinfo()

magic_quotes_gpc    On  On
magic_quotes_runtime    Off Off
magic_quotes_sybase Off Off

唯一可行的方法是将php_flag magic_quotes_gpc Off添加到.htaccess。

现在我要在php.ini中禁用它。怎么可以?

修改

phpinfo()显示:

Configuration File (php.ini) Path   /etc/php5/apache2
Loaded Configuration File   /php.ini

所以我打开了/etc/php5/apache2/php.ini。这些是与魔术相关的东西:

magic_quotes_gpc = Off

; Magic quotes for runtime-generated data, e.g. data from SQL, from exec(), etc.
; http://php.net/magic-quotes-runtime
magic_quotes_runtime = Off

; Use Sybase-style magic quotes (escape ' with '' instead of \').
; http://php.net/magic-quotes-sybase
magic_quotes_sybase = Off

2 个答案:

答案 0 :(得分:1)

PHP应该尊重php.ini的设置,因此如果默认值也报告为“On”,则PHP可能无法从.ini文件中读取该值。

以下是该做什么:

  1. 与我们分享您添加到php.ini中的配置行以禁用它。可能是你刚刚输了一个错字。看起来应该是这样的。

    magic_quotes_gpc = Off
    magic_quotes_runtime = Off
    magic_quotes_sybase = Off
    
  2. 确保ini文件中没有多次出现magic_quotes_gpc!

  3. 确保您正在编辑正确的.ini文件!打开phpinfo()的输出,查看“配置文件(php.ini)路径”和“解析的其他.ini文件”。检查这些文件以查找magic_quotes_gpc条目。

    • 请注意,无论您是在CLI上运行phpinfo()还是使用Web服务器,都可能会有所不同!
  4. 虽然考虑到您所说的phpinfo()报告的内容不太可能出现问题,但请确保您没有覆盖网络服务器配置中的内容。

答案 1 :(得分:0)

在你的php文件中使用此功能,它将起作用

set_magic_quotes_runtime(false);

注意

从PHP 5.3.0开始,此函数已被弃用,自PHP 5.4.0起已被删除。