Rasmus Lerdorf wrote:
> In this whirlwind hack job to turn off register_globals, we have lost a
> very useful feature.  Or maybe it was lost earlier and I didn't pay
> attention.
> 
> Today you cannot set variables_order to "ES" and turn register_globals on
> so that only E and S vars end up in the global symbol table.  If you do
> this, then there is no way to get to G, P and C variables.
> $HTTP_GET_VARS/$_GET do not get populated anymore when there is no G in
> variables_order, for example.

This should be fixed :)

> 
> This is a rather big shame as populating the global symbol table with at
> least the server variables is a pretty safe thing to do.
> 
> It's ok that variables_order can be used to speed things up and tell PHP
> not to hash stuff into the various arrays, but the approach of partially
> filling globals and fetching the rest from the appropriate arrays is
> useful.  So, I think we either need a new directive along the lines of
> 
>   force_hashing = "GPC"
> 
> or we need to simply always hash.  Or perhaps it would be a negative
> subtracting directive like:
> 
>   never_hash = "E"
> 


It would be a lot easier for PHP application developers
if they can assume GPCS are always hashed into $_GET, $_POST,
$_COOKIE and $_SERVER. ($_ENV also?)

How about make "variable_order" affects only for globals?

I guess current code always initializes global symbol, then
initializes track vars.

How about change this to initizlize track vars always,
then initilize global vars?

-- 
Yasuo Ohgaki


-- 
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]

Reply via email to