note 48576 added to security.globals

From: Date: Thu, 30 Dec 2004 21:03:27 +0000
Subject: note 48576 added to security.globals
Groups: php.notes 
Request: Send a blank email to php-notes+get-82483@lists.php.net to get a copy of this message
If you want register_globals to be Off in one script, but you can't change the PHP config (shared hosting) and you can't use a .htaccess directive (shared hosting, or non-Apache server), this may help. Here is a easy script which will erase all auto-registered variables, except for $_GET, $_POST, $_COOKIE, etc. <?php if (ini_get(register_globals) == 1) { $defined_vars = get_defined_vars(); while (list($var_name, $var_value) = each($defined_vars)) { if ($var_name != "_GET" && $var_name != "_POST" && $var_name != "_COOKIE" && $var_name != "_SERVER" && $var_name != "_FILES" && $var_name != "_SESSION" && $var_name != "_ENV") { unset($$var_name); } } // end while } ?> To check if the variables were really unset, use this: <?php $defined_vars = get_defined_vars(); while (list($var_name, $var_value) = each($defined_vars)) { echo "Variable " . $var_name . " has value " . $var_value . "<br />\n"; } // end while ?> Once all auto-registered variables are unset, you can register only the ones you really want: $username = $_POST["username"]; ---- Manual Page -- http://www.php.net/manual/en/security.globals.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+48576 Delete -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes Reason: bad code -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=bad+code Reason: spam -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=spam Reason: useless example -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=useless+example Reason: contains commercial links -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=contains+commercial+links Reason: useless note -- http://master.php.net/manage/user-notes.php?action=delete+48576&report=yes&reason=useless+note Reject -- http://master.php.net/manage/user-notes.php?action=reject+48576&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#82483) next »