PHP 4.0 Bug #7258 Updated: Dangling references destroy session state

From: Date: Wed, 01 Nov 2000 07:28:59 +0000
Subject: PHP 4.0 Bug #7258 Updated: Dangling references destroy session state
Groups: php.dev 
Request: Send a blank email to php-dev+get-36595@lists.php.net to get a copy of this message
ID: 7258 Updated by: andi Reported By: sd@b-comp.de Status: Closed Bug Type: Scripting Engine problem Assigned To: Comments: No feedback from user for quite some time. Assume it works for him. Previous Comments: --------------------------------------------------------------------------- [2000-10-23 05:03:03] stas@php.net Please check current CVS, it should be fixed --------------------------------------------------------------------------- [2000-10-16 16:08:47] sd@b-comp.de (The problem described is specific to 4.0.3 and 4.0.3pl1. The scripts below work fine with 4.0.2.) Let $a be an array kept in the session state. Whenever a reference $x to an element of $a falls of the end of a script, the referenced array element is destroyed. Putting an ``undef($x);'' at the end of the script solves the problem. The following two scripts demonstate the problem: BEGIN FILE test1.php <?php session_register('a'); $a = array(); $a['foo'] = 'FOO'; ?> <html> <a href="test2.php?<?=SID?>">link</a> </html> END FILE BEGIN FILE test2.php <?php session_register('a'); $x = &$a['foo']; ?> <html> x=<?=$x?><br> <a href="test2.php?<?=SID?>">link</a> </html> END FILE Open test1.php in a browser and follow the link to test2.php. You'll see that $x is 'FOO'. Now follow that link again and $x is undefined. The scripts work if you put an ``undef($x);'' at the end of test2.php. --------------------------------------------------------------------------- Full Bug description available at: http://bugs.php.net/?id=7258

« previous php.dev (#36595) next »