Bug #14566 Updated: Session variables become read only
| From: | yohgaki@php.net | Date: | Tue, 15 Jan 2002 03:03:31 +0000 |
| Subject: | Bug #14566 Updated: Session variables become read only | ||
| References: | 1 | Groups: | php.dev |
| Request: | Send a blank email to php-dev+get-77083@lists.php.net to get a copy of this message | ||
ID: 14566
Updated by: yohgaki
Reported By: dward@maidencreek.com
Old Status: Open
Status: Feedback
Bug Type: Session related
Operating System: Solaris 7
PHP Version: 4.1.0
New Comment:
BTW, my last comment works for you?
To register,
$_SESSION['var'] = 1234;
To unregister
unset($_SESSION['var']);
What is your session save handler? files/mm/user/other?
Previous Comments:
------------------------------------------------------------------------
[2002-01-14 12:42:17] christian@metamerge.com
I get the same problem on Solaris 8. Code that worked fine in PHP 4.0.6
does not work anymore with 4.1.1:
- new vars are registered correctly into the session
- already defined session vars cannot be modified
My register_globals setting is on.
------------------------------------------------------------------------
[2002-01-06 22:20:20] yohgaki@php.net
This comment is work around for the bug.
Do not use session_register(), but use only $HTTP_SESSION_VARS or
$_SESSION to register/unregister session vars.
To register,
$_SESSION['var'] = 1234;
To unregister
unset($_SESSION['var']);
Then your script should work.
------------------------------------------------------------------------
[2001-12-18 12:55:34] dward@maidencreek.com
register_globals is on.
I have been trying to narrow everything down to a simple test case, but
have not yet been able to.
It now appears that something acts differently in 4.1.0 that changes
the reference of the global variable to something different than the
HTTP_SESSION_VARS[] variable which did not do so in 4.0.6.
A workaround is to set HTTP_SESSION_VARS[varname] =& GLOBALS[varname]
before the end of the script.
------------------------------------------------------------------------
[2001-12-17 15:55:08] derick@php.net
Can you post your script, and tell use the settings of
register_globals?
Derick
------------------------------------------------------------------------
[2001-12-17 15:47:43] dward@maidencreek.com
In PHP 4.1.0 it seems that session variables can only be set once and
will not be updated from subsequent pages (when using a user
save_handler at least). The same code works fine in PHP 4.0.6.
It seems that the write handler registered with
session_set_save_handler() gets the same session data that was read
with the read handler except that newly set session variables get
added.
------------------------------------------------------------------------
Edit this bug report at http://bugs.php.net/?id=14566&edit=1