【问题标题】:Magic quotes isn't off (Strange problam!)魔术引号没有关闭(奇怪的问题!)
【发布时间】:2013-05-02 11:48:06
【问题描述】:

我尝试在这些地方关闭魔术引号: /etc/php5/apache2/php.ini /etc/php5/cli/php.ini 我确定它们都是“关闭”的。

但它仍然在 phpinfo() 中开启!这是我的 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

【问题讨论】:

  • 您在进行这些更改后是否重新启动了服务器?
  • 是的,经过一次更改,我重新启动 Apache2
  • 是你的本地服务器还是像godaddy这样的主直播服务器?
  • 你也应该重启 PHP...sudo service php5-fpm restart
  • 也许您正在编辑错误的 ini 文件?查看 phpinfo 的输出,记下“加载的配置文件”中提到的文件。

标签: php


【解决方案1】:

php.ini 的设置应该受到 PHP 的尊重,所以如果默认值也被报告为“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() 报告的内容,这不太可能是问题,但请确保您没有覆盖 Web 服务器配置中的内容。

【讨论】:

  • 已添加问题信息。 magic_quotes_gpc 只出现了一次。
【解决方案2】:

在你的 php 文件中使用这个函数,它会起作用的

set_magic_quotes_runtime(false);

注意

此函数自 PHP 5.3.0 起已弃用,自 PHP 5.4.0 起已移除。

【讨论】:

  • OP指的是magic_quotes_gpc的设置,而不是magic_quotes_runtime。没有对应的PHP函数在runtime设置magic_quotes_gpc(只能在php.ini、.htaccess、server config等设置)。
猜你喜欢
  • 2013-11-15
  • 2011-05-17
  • 1970-01-01
  • 2010-09-20
  • 2012-12-08
  • 2010-12-21
  • 2021-07-26
  • 2013-12-17
  • 2016-07-21
相关资源
最近更新 更多