Error message

You are browsing documentation for drupal 7.x, which is not supported anymore. Read the updated version of this page for drupal 11.x (the latest version).

function drupal_session_initialize

Initializes the session handler, starting a session if needed.

1 call to drupal_session_initialize()
drupal_bootstrap in includes/bootstrap.inc
Ensures Drupal is bootstrapped to the specified phase.

File

includes/session.inc, line 242

Code

function drupal_session_initialize () {
 global $user, $is_https;
 session_set_save_handler ('_drupal_session_open', '_drupal_session_close', '_drupal_session_read', '_drupal_session_write', '_drupal_session_destroy', '_drupal_session_garbage_collection');
 // We use !empty() in the following check to ensure that blank session IDs
 // are not valid.
 if (!empty($_COOKIE[session_name ()]) || $is_https && variable_get ('https', FALSE) && !empty($_COOKIE[substr (session_name (), 1)])) {
 // If a session cookie exists, initialize the session. Otherwise the
 // session is only started on demand in drupal_session_commit(), making
 // anonymous users not use a session cookie unless something is stored in
 // $_SESSION. This allows HTTP proxies to cache anonymous pageviews.
 drupal_session_start ();
 if (!empty($user->uid) || !empty($_SESSION)) {
 drupal_page_is_cacheable (FALSE);
 }
 }
 else {
 // Set a session identifier for this request. This is necessary because
 // we lazily start sessions at the end of this request, and some
 // processes (like drupal_get_token()) needs to know the future
 // session ID in advance.
 $GLOBALS['lazy_session'] = TRUE;
 $user = drupal_anonymous_user ();
 // Less random sessions (which are much faster to generate) are used for
 // anonymous users than are generated in drupal_session_regenerate() when
 // a user becomes authenticated.
 session_id (drupal_random_key ());
 if ($is_https && variable_get ('https', FALSE)) {
 $insecure_session_name = substr (session_name (), 1);
 $session_id = drupal_random_key ();
 $_COOKIE[$insecure_session_name] = $session_id;
 }
 }
 date_default_timezone_set (drupal_get_user_timezone ());
}

Buggy or inaccurate documentation? Please file an issue. Need support? Need help programming? Connect with the Drupal community.