#37510 [Opn->Csd]: session_regenerate_id changes session_id() even on failure

From: Date: Thu, 18 May 2006 22:18:45 +0000
Subject: #37510 [Opn->Csd]: session_regenerate_id changes session_id() even on failure
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-97348@lists.php.net to get a copy of this message
ID: 37510 Updated by: bjori@php.net Reported By: dabrfe at gmail dot com -Status: Open +Status: Closed Bug Type: Session related Operating System: ? PHP Version: 4.4.2 Assigned To: bjori New Comment: This bug has been fixed in CVS. Snapshots of the sources are packaged every three hours; this change will be in the next snapshot. You can grab the snapshot at http://snaps.php.net/. Thank you for the report, and for helping us make PHP better. Previous Comments: ------------------------------------------------------------------------ [2006-05-18 20:19:46] dabrfe at gmail dot com Description: ------------ session_regenerate_id will not really work if any output has been sent to the browser because it can't send the header required. However, even if it fails (and issues a warning), the value returned by session_id() is changed and there then is an inconsistency between session_id() and the actual session id. Reproduced in 4.4.2 and 5.1.2 on OS X 10.4.6 (built from source) Reproduced in 4.4.1 on RedHat 9 Does not fail at all (no header warning and session id is correctly changed) in 5.0.3 on OS X 10.4.5 (package from entropy.ch) Reproduce code: --------------- session.php: <% error_reporting(E_ALL); ini_set('display_errors', true); session_name('my_Sess'); session_start(); $orig_id=session_id(); print "orig: $orig_id<br>"; session_regenerate_id(); $new_id=session_id(); print "new: $new_id<br>"; %> <a href="session.php">go again</a> Expected result: ---------------- If regenerate worked: orig: 1234 new: 2345 <click link> orig: 2345 new: 3456 <click link> orig: 3456 new: 4567 <click link> orig: 4567 new: 5678 If regenerate failed: orig: 1234 new: 1234 <click link> orig: 1234 new: 1234 <click link> orig: 1234 new: 1234 <click link> orig: 1234 new: 1234 Actual result: -------------- When regenerate fails w/ header warning: orig: 1234 new: 2345 <click link> orig: 1234 new: 3456 <click link> orig: 1234 new: 4567 <click link> orig: 1234 new: 5678 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=37510&edit=1

« previous php.bugs (#97348) next »