Return to Snippet

Revision: 61897
at January 23, 2013 05:29 by Queue


Initial Code
function unregister_globals() {

    if (ini_get('register_globals') == 0) {
       return;
    }

// Save the existing superglobals first
    $REQUEST = $_REQUEST;
    $GET = $_GET;
    $POST = $_POST;
    $COOKIE = $_COOKIE;

    if (isset($_SESSION)) {
        $SESSION = $_SESSION;
    }

    $FILES = $_FILES;
    $ENV = $_ENV;
    $SERVER = $_SERVER;

// Unset the $GLOBALS array (clear all)
    foreach($GLOBALS as $key => $value) {
        if ($key != 'GLOBALS') {
            unset($GLOBALS[$key]);
        }
    }

// Re-assign the saved superglobals again
    $_REQUEST = $REQUEST;
    $_GET = $GET;
    $_POST = $POST;
    $_COOKIE = $COOKIE;

    if (isset($SESSION)) {
        $_SESSION = $SESSION;
    }

    $_FILES = $FILES;
    $_ENV = $ENV;
    $_SERVER = $SERVER;
}

Initial URL


Initial Description
Emulate Register Globals being Off when you can't (or don't want to) change php.ini for your entire site

Initial Title
Unregister Globals Function

Initial Tags


Initial Language
PHP