ID: 8676
User Update by: [EMAIL PROTECTED]
Old-Status: Feedback
Status: Open
Bug Type: *Session related
Operating system: Linux
PHP Version: 4.0.5
Description: Bad serialization of objects with references

Yes, the bug is still in 4.0.5. I put it back online on 
http://www.generasound.com/test/bug.php
You can see it in action provided your browser accepts cookies (go there and click 
reload).

Previous Comments:
---------------------------------------------------------------------------

[2001-05-22 21:29:45] [EMAIL PROTECTED]
Could you please give some feedback if this problem persists with a recent version 
(CVS, snapshot, 4.0.5 release) of PHP? Thanks!

---------------------------------------------------------------------------

[2001-01-12 11:15:12] [EMAIL PROTECTED]
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>";
}
?>


---------------------------------------------------------------------------


Full Bug description available at: http://bugs.php.net/?id=8676


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to