Bug #8676 Updated: Bad serialization of objects with references

From: Date: Tue, 22 May 2001 19:29:45 +0000
Subject: Bug #8676 Updated: Bad serialization of objects with references
Groups: php.dev 
Request: Send a blank email to php-dev+get-56331@lists.php.net to get a copy of this message
ID: 8676 Updated by: sbergmann Reported By: arnaud.bienvenu@generasound.com Old-Status: Open Status: Feedback Bug Type: *Session related Operating system: PHP Version: 4.0.4 Assigned To: Comments: Could you please give some feedback if this problem persists with a recent version (CVS, snapshot, 4.0.5 release) of PHP? Thanks! Previous Comments: --------------------------------------------------------------------------- [2001-01-12 11:15:12] arnaud.bienvenu@generasound.com Some complex objects won't be correctly stored into the session. This is probably a problem with serialize/unserialize. It happens with objects structure containing some references. The code below builds the simpliest structure I could find that pinpouts the problem. With more complex structure, you can have all sorts of strange behaviour, including crashing PHP, but the behaviours vary from one PHP installation to another (even with the same version and compile flags). <?php /* View this script with a browser and press reload It will probably display "-->137645276" instead of "-->Object" You can view it at http://www.generasound.com/test/bug.php */ session_start(); if (!isset($form)) { $form = new stdClass(); $submit = new stdClass(); $upperif = new stdClass(); $upperif->Child = &$submit; $upperif->Layout = new stdClass(); $upperif->Layout->Child = new stdClass(); $upperif->Layout->Child->Interface = &$submit; $lowerif = new stdClass(); $form->Children[0] = &$upperif; $form->Children[1] = &$lowerif; $form->Layout = new stdClass(); $form->Layout->Children[1] = new stdClass(); $form->Layout->Children[1]->Interface = &$lowerif; echo "-->".$form->Layout->Children[1]->Interface."<BR>"; session_register("form"); } else { echo "-->".$form->Layout->Children[1]->Interface."<BR>"; } ?> --------------------------------------------------------------------------- ATTENTION! Do NOT reply to this email! To reply, use the web interface found at http://bugs.php.net/?id=8676&edit=2

« previous php.dev (#56331) next »