ID: 22117 Updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] -Status: Open +Status: Assigned Bug Type: Session related Operating System: Win NT 4 PHP Version: 4.3.0 -Assigned To: +Assigned To: sas
Previous Comments: ------------------------------------------------------------------------ [2003-02-10 13:03:23] [EMAIL PROTECTED] Just FYI, the following script works as expected: <?php session_start(); if (!isset($_SESSION['var1'])) { $_SESSION['var1'] = "INITIALIZED"; $_SESSION['var2'] = $_SESSION['var1']; $_SESSION['var2'] = "CHANGED"; } var_dump($_SESSION); ?> ------------------------------------------------------------------------ [2003-02-10 12:54:13] [EMAIL PROTECTED] A colleague points out that this script also produces the buggy behaviour. <?php session_start(); $var1 = "INITIALIZED"; $var2 = $var1; session_register("var1","var2"); $var2 = "CHANGED"; echo $var1."<br>"; echo $var2."<br>"; ?> ------------------------------------------------------------------------ [2003-02-09 16:36:48] [EMAIL PROTECTED] Further searching makes me think that this may be related to Bug #20583 : http://bugs.php.net/bug.php?id=20583 ------------------------------------------------------------------------ [2003-02-09 16:33:11] [EMAIL PROTECTED] Actually, I have created a simpler test case, which produces the behaviour in one script, and BEFORE serialization: <?php // bug3.php session_start(); $var1 = $var2 = "INITIALIZED"; session_register("var1","var2"); $var2 = "CHANGED"; echo $var1."<br>"; echo $var2."<br>"; ?> Actual Output in 4.3.0: CHANGED CHANGED Session data after execution var1|s:7:"CHANGED";var2|R:1; So it seems that $var2 is a reference of $var1, but only if the session_start and session_register functions are called. Notes: The bug occurs even if the "session_start();" and the "$var1 = $var2 = "INITIALIZED";" lines are swapped. The buggy behaviour disappears if I move the line "$var2 = "CHANGED"" above the session_register() call. ------------------------------------------------------------------------ [2003-02-09 16:07:53] [EMAIL PROTECTED] Here's the contents of the session file, immediately after execution of my first test script test_bug1.php, from versions 4.2.2 and 4.3.0: session file from 4.2.2: var1|s:11:"INITIALIZED";var2|s:11:"INITIALIZED"; session file from 4.3.0: var1|s:11:"INITIALIZED";var2|R:1; ------------------------------------------------------------------------ The remainder of the comments for this report are too long. To view the rest of the comments, please view the bug report online at http://bugs.php.net/22117 -- Edit this bug report at http://bugs.php.net/?id=22117&edit=1