note 35238 added to security.registerglobals
| From: | mark at virtualcreations dot com dot au | Date: | Mon, 25 Aug 2003 03:09:51 +0000 |
| Subject: | note 35238 added to security.registerglobals | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-55015@lists.php.net to get a copy of this message | ||
For all those people out there who are too lazy to rewrite all their code when their host enforces a
"no register_globals" policy, I wrote this function to make sure all globals are
registered, even if register_globals is turned off. It respects the "variables_order"
(EGPCS) parameter as well. Simply run it once, at the start of your script.
function always_register_globals()
{
if (ini_get("register_globals") == 1)
return;
//
// Split the variables_order config variable into its component characters
//
$chars = preg_split('//', ini_get("variables_order"), -1, PREG_SPLIT_NO_EMPTY);
foreach ($chars as $letter)
{
switch ($letter)
{
case "E": $glob = "_ENV"; break;
case "G": $glob = "_GET"; break;
case "P": $glob = "_POST"; break;
case "C": $glob = "_COOKIE"; break;
case "S": $glob = "_SERVER"; break;
}
global ${$glob};
$var_glob = &${$glob};
foreach ($var_glob as $varname => $value)
{
global ${$varname};
${$varname} = $value;
}
}
}
----
Manual Page -- http://www.php.net/manual/en/security.registerglobals.php
Edit Note -- http://master.php.net/manage/user-notes.php?action=edit+35238
Delete Note -- http://master.php.net/manage/user-notes.php?action=delete+35238&report=yes
Reject Note -- http://master.php.net/manage/user-notes.php?action=reject+35238&report=yes