sesser Wed Mar 22 08:21:01 2006 UTC
Modified files:
/php-src README.UPDATING_TO_PHP6
Log:
Fix the bullshit register_globals emulation
1) S is not _SESSION but _SERVER
2) EXTR_OVERWRITE is evil
http://cvs.php.net/viewcvs.cgi/php-src/README.UPDATING_TO_PHP6?r1=1.1&r2=1.2&diff_format=u
Index: php-src/README.UPDATING_TO_PHP6
diff -u php-src/README.UPDATING_TO_PHP6:1.1 php-src/README.UPDATING_TO_PHP6:1.2
--- php-src/README.UPDATING_TO_PHP6:1.1 Tue Mar 14 16:28:35 2006
+++ php-src/README.UPDATING_TO_PHP6 Wed Mar 22 08:21:01 2006
@@ -34,30 +34,29 @@
Here is an example to emulate the session related functions and
a snippet to register variables:
-$_register_globals_order = ini_get("variables_order");
+$_register_globals_order = strrev(ini_get("variables_order"));
$_register_globals_order_len = strlen($_register_globals_order);
for($_register_globals_i=0;$_register_globals_i<$_register_globals_order_len;$_register_globals_i++)
{
switch($_register_globals_order{$_register_globals_i}) {
case "E":
- extract($_ENV, EXTR_REFS|EXTR_OVERWRITE);
+ extract($_ENV, EXTR_REFS|EXTR_SKIP);
+ break;
+
case "G":
- continue;
+ extract($_GET, EXTR_REFS|EXTR_SKIP);
break;
case "P":
- extract($_POST, EXTR_REFS|EXTR_OVERWRITE);
+ extract($_POST, EXTR_REFS|EXTR_SKIP);
break;
case "C":
- extract($_COOKIE, EXTR_REFS|EXTR_OVERWRITE);
+ extract($_COOKIE, EXTR_REFS|EXTR_SKIP);
break;
case "S":
- if(!isset($_SESSION)) {
- continue;
- }
- extract($_SESSION, EXTR_REFS|EXTR_OVERWRITE);
+ extract($_SERVER, EXTR_REFS|EXTR_SKIP);
break;
}
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php