Re: [PHP-CVS] cvs: php4 / php.ini-dist php.ini-recommended /ext/filepro filepro.c /ext/session session.c /main main.c php_globals.h php_variables.c php_variables.h

[email protected] (Zeev Suraski)
Newsgroups php.dev
Message-ID <5.1.0.14.2.20030302181626.04453970@localhost>
At 17:56 02/03/2003, Marcus Börger wrote:
>At 16:38 02.03.2003, Zeev Suraski wrote:
>>Looks like for some reason, CLI registers $argv and $argc globals even 
>>though register_globals is off.  Why's that?
>
>
>CLI overwrites "register_argc_argv":
>         zend_alter_ini_entry("register_argc_argv", 19, "1", 1, 
> PHP_INI_SYSTEM, PHP_INI_STAGE_ACTIVATE);
>
>If i add "register_long_arrays" like this
>                 zend_alter_ini_entry("register_long_arrays", 21, "1", 1, 
> PHP_INI_SYSTEM, PHP_INI_STAGE_ACTIVATE);
>
>all is fine.

Yeah, but it's really not related.  The source of the problem is that CLI 
makes PHP register global variables even though register_globals is 
off.  We can work around this, as far as I can tell, by using the 
workaround below.

>  So the question is if we want $argc/$argv without "register_long_arrays" !?


>>Anyway, if we want to keep this behavior, we probably should change the 
>>place where argv/argc are registered, and put it somewhere global, 
>>outside where _SERVER is created.  If&when _SERVER is created, it will 
>>attempt to copy them.  Thoughts?
>
>That leads to "$_COMMAND" or "$_CMD".

Didn't quite understand what you mean by that...

>To answer my question above: The above variable should be independant and its
>ini setting "register_argc_argv" should be independant from 
>"register_long_arrays".

They have nothing to do with each other.  The code currently fails because 
the engine doesn't expect the argc/argv globals to be required, because 
register_globals is off.  Now, that the engine's smart enough not to 
process the server variables unless register_globals is on or _SERVER is 
being used, argc/argv are not created (they're created inside the routine 
that processes the server variables, which doesn't get called if 
register_globals is off and _SERVER is not being used).

register_long_arrays really has nothing to do with this bug, you're just 
seeing the symptom of a bug that lies elsewhere...

Zeev
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.