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

Reply via email to