0

我注意到 PHP laravel 框架中有一段类似如下的代码:

if (get_magic_quotes_gpc())
{
    $magics = array(&$_GET, &$_POST, &$_COOKIE, &$_REQUEST);

    foreach ($magics as &$magic)
    {
        $magic = array_strip_slashes($magic);
    }
}

我真的不知道如何进行测试,但是如果我把它放在我包含在每个页面上的 start.php 文件中,它会处理魔术引号,所以我不必担心它们吗?

编辑:

这是来自 laravel 的 array_strip_slashes:

function array_strip_slashes($array)
{
    $result = array();

    foreach($array as $key => $value)
    {
        $key = stripslashes($key);

        // If the value is an array, we will just recurse back into the
        // function to keep stripping the slashes out of the array,
        // otherwise we will set the stripped value.
        if (is_array($value))
        {
            $result[$key] = array_strip_slashes($value);
        }
        else
        {
            $result[$key] = stripslashes($value);
        }
    }

    return $result;
}
4

2 回答 2

1

您没有array_strip_slashes显示,但假设它工作正常 -

是的,该功能应该撤消魔术引号效果。如果打开魔术引号,则该代码根本不会运行。

正如其他人无疑也会指出的那样,最好将它们关闭。唉,在某些共享主机环境中,很难做到这一点。充其量,该代码将使您免于被烧毁。在最坏的情况下,这将是一块无害的垃圾,可以在未来某个时候当历史学家回顾魔术引语并嘲笑我们时移除。

于 2012-09-15T19:25:45.993 回答
0

这将“照顾”魔术引号,因为它将删除它们,这是一件好事。关闭它们会好很多(在 PHP 5.3 中它们应该默认关闭)。

于 2012-09-15T19:23:08.540 回答