手动禁用joomla中的魔术引用

时间:2013-11-23 13:55:56

标签: php .htaccess joomla php-ini magic-quotes-gpc

看起来我已经为这个帖子获得了2次投票。这个帖子可以帮助那些对Joomla或其他PHP驱动的CMS了解不足的人,因为它帮助了我。

@Gadoma在这个帖子中解决的问题是我无法使用Joomla中的HTML模块输出任何HTML内容,因为它在我尝试更新链接和图像时自动添加引号和斜杠锚标签和img标签。 这种情况发生在我身上,因为php的Magic Quote由于某些原因而被打开。

谁真正面临这类问题?

简而言之,拥有共享托管和PHP或CMS驱动的网站的人实际上面临着这种奇怪的问题,因为他们无法访问其服务器的根目录来修改.htaccess和php.ini文件以便禁用神奇的报价。

我想获得哪种解决方案?为什么?

我尝试了几乎所有在网络上找到的解决方案,包括这个网站。虽然有些人对解决方案给予了肯定的答复,但我不确定为什么它对我不起作用。 但是当我厌倦了寻找禁用Magic Quote的方法时,我想知道是否有任何方法可以手动为此目的服务。 @Gadoma提供了我正在寻找的确切解决方案。

解决方案是什么?

如果一切都失败了,而且你不是像我这样的服务器配置专家,你应该受益于这个线程。 只需查看@Gadoma提供的解决方案,这个问题应该消失。 我将再次复制并粘贴解决方案,

if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}

将上述功能放在[Joomla安装目录] /Administrator/index.php的顶部 希望这个帖子可以帮助别人。

1 个答案:

答案 0 :(得分:1)

有许多方法可以禁用魔法qoutes,请查看Joomla网站上的这篇文章。

http://docs.joomla.org/How_to_turn_off_magic_quotes_gpc_for_Joomla_3

或搜索SO,有很多关于它的线索。

如果您仍然无法管理关闭Magic Quotes,则可以使用此解决方法 (source - php manual - click here):

if (get_magic_quotes_gpc()) {
    $process = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);
    while (list($key, $val) = each($process)) {
        foreach ($val as $k => $v) {
            unset($process[$key][$k]);
            if (is_array($v)) {
                $process[$key][stripslashes($k)] = $v;
                $process[] = &$process[$key][stripslashes($k)];
            } else {
                $process[$key][stripslashes($k)] = stripslashes($v);
            }
        }
    }
    unset($process);
}

将上述功能放在[Joomla安装目录] /Administrator/index.php

的顶部

还要考虑到指令magic_quotes_gps已在PHP> = 5.4中删除,所以 如果你在PHP> = 5.4上运行它,get_magic_quotes_gpc()将始终返回false。