-2

所以看起来我已经对这个线程投了 2 票。该线程可以帮助对 Joomla 或其他 PHP 驱动的 CMS 了解不足的人,因为它帮助了我。

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

谁真正面临这种类型的问题?

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

我想得到什么类型的解决方案?为什么?

我尝试了几乎所有在网上找到的解决方案,包括这个网站。我不确定为什么它对我不起作用,尽管有些人对解决方案有积极的回应。但是当我厌倦了寻找禁用魔术引用的方法时,我想知道是否有任何方法可以手动达到目的。@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的顶部希望这个线程可以帮助某人。

4

1 回答 1

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。

于 2013-11-23T14:25:59.007 回答