Rasmus Lerdorf wrote: >>>Well, you still need to resolve precedence for $_REQUEST somehow. >>> >>> >>I forgot about $_REQUEST :) >> >>How about this one? >> >>- Store EGPCS to $_* hash and initialize them always. >> > > That can get expensive since 'E' can be rather large and is usually full > of useless stuff. Perhaps always populating GPCS is a good choice here. > 'E' can always be fetched individually via getenv() anyway. Since there > no equivalent getpost() function it is a good idea to not toss this data.
Sounds good. Environment vars are mostly useless. I thought it would be a little easier to implement this change if environment vars were in hash just like others. > > >>- Create "global_order" ini entry to determine $GLOBAL >> precedence. >>- Create "request_order" ini to entry determine $_REQUEST >> precedence. >>- Get rid of "variable_order" and "gpc_order". If user >> uses them, warn about it(?). >> > > Why not just leave variables_order alone and not affect BC. If GPCS is > always populated then this issue is solved. With register_globals on and > variables_order set to "S" you would still get server vars in the global > symbol table, be able to use import_request_variables() to import request > vars into the global symbol table (and probably rename them along the > way) and access $_GET, $_POST, etc... directly. I thought "global_order" & "request_order" is more intuitive name. and it's clear to users it behaves a little differenly before. It may not worth it. > >>This change is acceptable for 4.2.0, IMHO. >>(Many lines are needed to be changed, but we are going >>to set "register_global=Off" as a default, right?) >> > > Correct. Which is why I am looking at real-world uses here. Despite the > shorter symbol names, it is still a hassle writing echo $_GET['var'] all > the time. And there is no decent reason not to import Server variables > into the global namespace. > > To me a good setup would be: > > register_globals = On > variables_order = "S" > always_populate_gpcs (not a directive) > > <?php > import_request_variables('GP', 'r_'); > echo $HTTP_USER_AGENT; > echo $r_var; > ?> > > To me that script is cleaner and nicer than: > > <?php > echo $_SERVER['HTTP_USER_AGENT']; > echo $_REQUEST['var']; > ?> > Personally, I prefer "register_globals=Off" for session, but no objection here also. If we always initialize $GLOBALS specified by "variables_order", we may get rid of "register_globals". If there is no "register_globals", session module can be simplified a lot and we can forget about bugs related to it. (I'm not serious about this. Just my wish ;) -- Yasuo Ohgaki _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com -- PHP Development Mailing List <http://www.php.net/> To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]