- Patch #87372 by crunchywelch: work around PHP session bug.

5.x
Dries Buytaert 2006-10-24 15:31:35 +00:00
parent 35f906eb0a
commit d638d8bc03
1 changed files with 11 additions and 1 deletions

View File

@ -85,6 +85,16 @@ function sess_write($key, $value) {
function sess_regenerate() {
$old_session_id = session_id();
session_regenerate_id();
// We code around http://bugs.php.net/bug.php?id=32802 by destroying
// the session cookie by setting expiration in the past (a negative
// value). This issue only arises in PHP versions before 4.4.0,
// regardless of the Drupal configuration.
// TODO: remove this when we require at least PHP 4.4.0
if (isset($_COOKIE[session_name()])) {
setcookie(session_name(), '', time() - 42000, '/');
}
db_query("UPDATE {sessions} SET sid = '%s' WHERE sid = '%s'", session_id(), $old_session_id);
}
@ -127,4 +137,4 @@ function sess_gc($lifetime) {
db_query("DELETE FROM {sessions} WHERE timestamp < %d", time() - $lifetime);
return TRUE;
}
}