function sess_regenerate in Memcache API and Integration 5
Same name and namespace in other branches
- 5.2 session-memcache.inc \sess_regenerate()
- 5.2 session-memcache-db.inc \sess_regenerate()
- 5.2 session-memcache.db.inc \sess_regenerate()
- 6 memcache-session.inc \sess_regenerate()
File
- ./
memcache-session.inc, line 82 - User session handling functions.
Code
function sess_regenerate() {
// 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(), '', $_SERVER['REQUEST_TIME'] - 42000, '/');
}
// Store the current (anonymous) session id.
$old_session_id = session_id();
// Generate the new (authenticated) session id.
session_regenerate_id();
$key = session_id();
// Grab the user's information that is cached with the anonymous key
$info = dmemcache_get($old_session_id, 'session');
// Update it.
$info->sid = $key;
// Store it with the new key.
dmemcache_set($key, $info, ini_get('session.gc_maxlifetime'), 'session');
// Clear the old data from the cache.
dmemcache_delete($old_session_id, 'session');
}