Re: session_register warnings
| From: | Sascha Schumann | Date: | Fri, 11 Oct 2002 15:09:17 +0000 |
| Subject: | Re: session_register warnings | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-89358@lists.php.net to get a copy of this message | ||
On Fri, 11 Oct 2002, Rasmus Lerdorf wrote:
> Sascha, would you mind explaining the reasoning for changing this
> behaviour? Whether it is documented or not, I'd like to hear a technical
> reason for not allowing session_register() to act on global variables when
> register_globals is off. I still don't see it. All I see is
> inconsistency here.
PHP 4.2 and earlier versions behave inconsistenly with regard
to treating global variables as source of session variables.
They work exactly like this:
1st request
session_register('c');
$c = 3; # Updates session variable
2nd request
session_start();
$c = 5; # Does NOT update session variable
That is clearly broken under the assumption that
session_register() should act on global variables. It
clearly does not (always). A user should be able to access a
session var using globals either all the time or never. If
it is 'sometimes', valid code will cause unexpected results
(imagine in the above example that $c is a global,
non-session variable and that $_SESSION["c"] is not set
during the first request).
From my point of view, it is a fallacy to ask for prolonging
this misfeature of earlier PHP 4.2 releases. It absolutely
had to be addressed.
- Sascha