PHP中添加了额外的反斜杠

时间:2008-10-24 00:59:49

标签: php apache escaping mediawiki

我的糟糕的网络主机前几天做了一些升级,有些设置出错了,因为查看我们公司的wiki(MediaWiki),每个报价都会被反斜杠转义。它甚至不仅仅是被发布的数据(即:文章)受到影响,而且还有标准的MediaWiki文本。例如:

  

您已经关注了一个尚未存在的网页链接。要创建页面,请在下面的框中输入(有关详细信息,请参阅帮助页面)。如果你错误地在这里,只需点击你的浏览器\'\'后退\'\'\'按钮。

我做的第一件事就是使用magic_quotes_gpc文件禁用magic_quotes_runtime.htaccess,但这仍然存在。我的php_info()报告了这一点:

Setting             Local Value   Master Value  
magic_quotes_gpc        Off            On  
magic_quotes_runtime    Off            On  
magic_quotes_sybase     Off            Off  

有什么想法吗?

6 个答案:

答案 0 :(得分:4)

您可能需要确认数据库中的数据是否已损坏。如果您在不知情的情况下使用了addslash()数据,那么magic_quotes已经打开,那么您将双重削减进入数据库的数据。

答案 1 :(得分:1)

您需要让他们更改主值,或自己处理。我不相信你可以在运行时为超级全局变量设置magic_quotes_gpc()。 (在运行时设置它将删除像数据库/文件,但不是全局变量)

if (ini_get('magic_quotes_gpc') ) {
  foreach($_GET as $key=>$value) {
    $_GET[$key] = stripslashes($value);
  } 
} // etc...

答案 2 :(得分:1)

如果使用php_admin_flag / php_admin_value设置了PHP标记,则无法从.htaccess文件更改它。这让我有些头疼。要么在php.ini中禁用它,要么在运行时撤消魔术引号: http://talks.php.net/show/php-best-practices/26

答案 3 :(得分:0)

也许其他人正在调用set_magic_quotes_runtime()。

答案 4 :(得分:0)

我在显示时使用striplases()来删除斜杠。

http://www.php.net/manual/en/function.stripslashes.php

答案 5 :(得分:-1)

您是否尝试过联系糟糕的主机并记录错误?如果你在共享主机上,你可能不是唯一受影响的人。