1.20.x session.inc _backdrop_session_destroy($sid)

Session handler assigned by session_set_save_handler().

Cleans up a specific session.

Parameters

$sid: Session ID.

Return value

TRUE: The session destroy handler must always return TRUE.

File

includes/session.inc, line 455
User session handling functions.

Code

function _backdrop_session_destroy($sid) {
  global $user, $is_https;

  // Nothing to do if we are not allowed to change the session.
  if (!backdrop_save_session()) {
    return TRUE;
  }

  // Delete session data.
  db_delete('sessions')
    ->condition($is_https ? 'ssid' : 'sid', $sid)
    ->execute();

  // Reset $_SESSION and $user to prevent a new session from being started
  // in backdrop_session_commit().
  $_SESSION = array();
  $user = backdrop_anonymous_user();

  // Unset the session cookies.
  _backdrop_session_delete_cookie(session_name());
  if ($is_https) {
    _backdrop_session_delete_cookie(substr(session_name(), 1), FALSE);
  }
  elseif (settings_get('https', FALSE)) {
    _backdrop_session_delete_cookie('S' . session_name(), TRUE);
  }
  return TRUE;
}