/
usr
/
local
/
lsws
/
phpbuild
/
php-8.0.7
/
ext
/
session
/
tests
/
File Upload :
llllll
Current File: //usr/local/lsws/phpbuild/php-8.0.7/ext/session/tests/bug79031.phpt
--TEST-- Bug #79031: Session unserialization problem --FILE-- <?php class SerializableClass implements Serializable { public $sharedProp; public function __construct($prop) { $this->sharedProp = $prop; } public function __set($key, $value) { $this->$key = $value; } public function serialize() { return serialize(get_object_vars($this)); } public function unserialize($data) { $ar = unserialize($data); if ($ar === false) { return; } foreach ($ar as $k => $v) { $this->__set($k, $v); } } } // Shared object that acts as property of two another objects stored in session $testPropertyObj = new stdClass(); $testPropertyObj->name = 'test'; // Two instances of \SerializableClass that shares property $sessionObject = [ 'obj1' => new SerializableClass($testPropertyObj), 'obj2' => new SerializableClass($testPropertyObj), ]; session_start(); $_SESSION = $sessionObject; $sessionString = session_encode(); session_decode($sessionString); echo $sessionString; echo "\n\n"; var_dump($_SESSION); ?> --EXPECT-- obj1|C:17:"SerializableClass":65:{a:1:{s:10:"sharedProp";O:8:"stdClass":1:{s:4:"name";s:4:"test";}}}obj2|C:17:"SerializableClass":28:{a:1:{s:10:"sharedProp";r:3;}} array(2) { ["obj1"]=> object(SerializableClass)#4 (1) { ["sharedProp"]=> object(stdClass)#5 (1) { ["name"]=> string(4) "test" } } ["obj2"]=> object(SerializableClass)#6 (1) { ["sharedProp"]=> object(stdClass)#5 (1) { ["name"]=> string(4) "test" } } }
Copyright ©2k19 -
Hexid
|
Tex7ure