#35557 [Opn->Bgs]: Non-scalar properties of objects stored in session variables aren't kept
| From: | sniper@php.net | Date: | Mon, 05 Dec 2005 21:50:46 +0000 |
| Subject: | #35557 [Opn->Bgs]: Non-scalar properties of objects stored in session variables aren't kept | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-89791@lists.php.net to get a copy of this message | ||
ID: 35557
Updated by: sniper@php.net
Reported By: fcardinaux at gmail dot com
-Status: Open
+Status: Bogus
Bug Type: Session related
Operating System: Windows XP Pro
PHP Version: 5CVS-2005-12-05 (snap)
New Comment:
Don't store objects in sessions.
Previous Comments:
------------------------------------------------------------------------
[2005-12-05 20:39:53] fcardinaux at gmail dot com
I'm sorry, but it seems that this bug can't reproduce within a single
script. Three php files are necessary : a class definition file
(class.php, 61 lines), a start page (index.php, 47 lines) that links to
a verification page (verification.php, 24 lines), where the bug appears.
These files are enclosed in the archive
www.cardinaux.info/session_problem_with_php_5_1_2_dev.zip.
------------------------------------------------------------------------
[2005-12-05 16:43:37] fcardinaux at gmail dot com
Description:
------------
Classes are defined in the file class.php. The class bar contains only
one scalar property. The class foo contains three properties : an
instance of the class bar, an array and a scalar property.
In index.php, an instance of foo is stored in a session variable. Then
the print_r function is called to display this variable's content.
There isn't any bug at this point yet.
By clicking on 'continue', you open the next file : verification.php.
There, the print_r function is called again.
As you can see, the content of the non-scalar properties of foo is
lost.
This is different from the behaviour of php versions until 5.0.5.
Reproduce code:
---------------
www.cardinaux.info/session_problem_with_php_5_1_2_dev.zip
Expected result:
----------------
Verification.php should output :
Foo Session Variable :
foo Object ( [_bar:private] => bar Object ( [_value:private] => 54321 )
[_names:private] => Array ( [0] => Boat [1] => Airplane [2] => Car )
[_value:private] => 1500 )
Actual result:
--------------
Verification.php outputs :
Foo Session Variable :
foo Object ( [_bar:private] => [_names:private] => [_value:private] =>
1500 )
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=35557&edit=1