“未定義変数:_”エラー

私はこのスクリプトから “"未定義変数:_
43行目のmagic_quotes_gpc.phpでこの通知を受け取ります "

<?php
$HTTP_VARs = array(
    'HTTP_GET_VARS' => '_GET',
    'HTTP_POST_VARS' => '_POST',
    'HTTP_COOKIE_VARS' => '_COOKIE',
    'HTTP_SERVER_VARS' => '!_SERVER',
    'HTTP_ENV_VARS' => '!_ENV',
    'HTTP_POST_FILES' => '!_FILES'
);

if (!isset($HTTP_GET_VARS) && isset($_GET)) {
    foreach ($HTTP_VARs as $HTTP_VAR => $_VAR) {
        $_VAR = ($_VAR[0] == '!' ? str_replace('!', '', $_VAR) : $_VAR);

        if (isset($$_VAR))
            $$HTTP_VAR = $$_VAR;
    }
}

function strip_magic_quotes($array)
{
    foreach ($array as $key => $value)
        $array[$key] = (is_array($value) ? strip_magic_quotes($value) : stripslashes($value));

    return $array;
}

foreach ($HTTP_VARs as $HTTP_VAR => $_VAR) {
    if ($_VAR[0] != '!') {
        if (get_magic_quotes_gpc()) {
            if (!empty($$_VAR))
                $$_VAR = strip_magic_quotes($$_VAR);
        } else {
            if (is_array($$_VAR)) {
                foreach ($$_VAR as $k => $v) {
                    if (is_array($$_VAR[$k])) {
                        foreach ($$_VAR[$k] as $k2 => $v2)
                            $$_VAR[$k][$k2] = addslashes($v2);

                        @reset($$_VAR[$k]);
                    } else
                        $$_VAR[$k] = addslashes($v);
                }

                @reset($$_VAR);
            }
        }
    }
}
?>

43行目はこれです: if(is_array($$ _ VAR [$ k]))
私はすべての値をポストするためにエコーを使いましたが、1つは _ ではありません。

私は見て見て、この変数 _ がどこから来ているのか分かりません。私はうんざりです。

ベストアンサー

WOA!私はあなたが大量のコードで達成しようとしていることを知っていませんが、次の(もっと簡単な)コードを使って魔法の引用符を扱うことができます:

/** Recursive array version of stripslashes. */
function stripslashes_deep($value) {
    $value = is_array($value) ? array_map('stripslashes_deep', $value) : stripslashes($value);
    return $value;
}
/** Remove magic quotes if enabled. */
function nuke_magic_quotes() {
    if (get_magic_quotes_gpc()) {
        $_POST = array_map('stripslashes_deep', $_POST);
        $_GET = array_map('stripslashes_deep', $_GET);
        $_COOKIE = array_map('stripslashes_deep', $_COOKIE);
        $_REQUEST = array_map('stripslashes_deep', $_REQUEST);
    }
}

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です