Emulate register_globals off
1 2 function unregister_GLOBALS() 3 { 4 if (!ini_get('register_globals')) { 5 return; 6 } 7 8 // Might want to change this perhaps to a nicer error 9 if (isset($_REQUEST['GLOBALS']) || isset($_FILES['GLOBALS'])) { 10 die('GLOBALS overwrite attempt detected'); 11 } 12 13 // Variables that shouldn't be unset 14 $noUnset = array('GLOBALS', '_GET', 15 '_POST', '_COOKIE', 16 '_REQUEST', '_SERVER', 17 '_ENV', '_FILES'); 18 19 $input = array_merge($_GET, $_POST, 20 $_COOKIE, $_SERVER, 21 $_ENV, $_FILES, 22 isset($_SESSION) && is_array($_SESSION) ? $_SESSION : array()); 23 24 foreach ($input as $k => $v) { 25 if (!in_array($k, $noUnset) && isset($GLOBALS[$k])) { 26 unset($GLOBALS[$k]); 27 } 28 } 29 } 30 31 unregister_GLOBALS();
Source: http://www.zend.com/manual/faq.misc.php#faq.misc.registerglobals