#19740 [NEW]: session_write_close() not passing new session vars when globals are turned off

From: Date: Thu, 03 Oct 2002 18:56:02 +0000
Subject: #19740 [NEW]: session_write_close() not passing new session vars when globals are turned off
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-21405@lists.php.net to get a copy of this message
From: shudson@crackerbarrel.com Operating system: Red Hat Linux 7.3 PHP version: 4.2.3 PHP Bug Type: Session related Bug description: session_write_close() not passing new session vars when globals are turned off OS - Red Hat 7.3 Web Server- Apache 1.3.23 PHP - 4.2.3 If globals are turned off when calling session_write_close() before a page redirect, any new session data is not getting written when using files. As a work around, if I use my on session handlers, I ignore the session_data that gets passed to my session_write function and create my own session data string like this: function sess_write($key, $val) { // SGH - 10/03/2002 // globals off bug work around!!! The session data // passed in is not always updated with new values. // so we'll build our on session data from the // super global $_SESSION. $sesson_data = ""; while (list($name, $value) = each($_SESSION)) { $$name = $value['tmp_name']; if (is_string($value)) { $session_data .= $name.'|s:'.strlen($value).':'.chr(34).$value.chr(34).";"; } elseif (is_int($value)) { $session_data .= $name.'|i:'.$value.";"; } elseif (is_float($value)) { $session_data .= $name.'|d:'.$value.";"; } } $val = $session_data; // more code ............ This works, however, seems to point to a PHP bug, since $val does not contain the new varibles until I set it to the string I created from the super global $_SESSION. -- Edit bug report at http://bugs.php.net/?id=19740&edit=1 -- Try a CVS snapshot: http://bugs.php.net/fix.php?id=19740&r=trysnapshot Fixed in CVS: http://bugs.php.net/fix.php?id=19740&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=19740&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=19740&r=needtrace Try newer version: http://bugs.php.net/fix.php?id=19740&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=19740&r=support Expected behavior: http://bugs.php.net/fix.php?id=19740&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=19740&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=19740&r=submittedtwice register_globals: http://bugs.php.net/fix.php?id=19740&r=globals PHP 3 support discontinued: http://bugs.php.net/fix.php?id=19740&r=php3 Daylight Savings: http://bugs.php.net/fix.php?id=19740&r=dst

« previous php.bugs (#21405) next »