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]