ID: 51120 Comment by: antonio04 at gmail dot com Reported By: antonio04 at gmail dot com Status: Open Bug Type: Session related Operating System: FreeBSD 7.2 PHP Version: 5.3.1 New Comment:
Sorry, there was a typo in the reproduce code -- please check this instead: <?php /* Script one */ ini_set('register_globals', 0); session_start(); $_SESSION['foo'] = NULL; $foo = 'bar'; ?> Then view the second script: <?php /* Script two */ session_start(); var_dump($_SESSION['foo']); ?> Previous Comments: ------------------------------------------------------------------------ [2010-02-23 08:30:05] antonio04 at gmail dot com Description: ------------ When you have a session variable whose whose session array key is defined but with a NULL value, this variable acts as if register_globals were enabled, i.e. any value set to a global variable of the same name is stored in the session as this key's value. Once the session variable's value has been changed to something not null, this behavior ceases. A cursory search in the archives shows that this issue was categorized as a bogus bug report six years ago (#28482), but the reason given does not make sense, as the session variable key certainly does exist and acts unexpectedly when initialized to NULL. Thanks! Reproduce code: --------------- <?php /* Script 1 */ session_start(); init_set('register_globals', 0); $_SESSION['foo'] = NULL; $foo = 'bar'; ?> <?php /* Script 2 */ session_start(); var_dump($_SESSION['foo']); ?> Expected result: ---------------- Script 1: Script 2: Notice: Undefined index: foo in /home/www/interpals/test.php on line 3 NULL Actual result: -------------- Script 1: Script 2: string(3) "bar" ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=51120&edit=1