From eaa71ba1c19538af5416dceec288aa37cad2b7e6 Mon Sep 17 00:00:00 2001 From: Derek Jones Date: Thu, 2 Sep 2010 10:32:07 -0500 Subject: Added a new config item to the Session class (sess_expire_on_close) to allow sessions to auto-expire when the browser window is closed. --- system/libraries/Session.php | 7 +++++-- user_guide/changelog.html | 1 + user_guide/libraries/sessions.html | 6 ++++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/system/libraries/Session.php b/system/libraries/Session.php index f413c0d1b..fc3ee0542 100644 --- a/system/libraries/Session.php +++ b/system/libraries/Session.php @@ -30,6 +30,7 @@ class CI_Session { var $sess_use_database = FALSE; var $sess_table_name = ''; var $sess_expiration = 7200; + var $sess_expire_on_close = FALSE; var $sess_match_ip = FALSE; var $sess_match_useragent = TRUE; var $sess_cookie_name = 'ci_session'; @@ -655,12 +656,14 @@ class CI_Session { // if encryption is not used, we provide an md5 hash to prevent userside tampering $cookie_data = $cookie_data.md5($cookie_data.$this->encryption_key); } - + + $expire = ($this->sess_expire_on_close === TRUE) ? 0 : $this->sess_expiration + time(); + // Set the cookie setcookie( $this->sess_cookie_name, $cookie_data, - $this->sess_expiration + time(), + $expire, $this->cookie_path, $this->cookie_domain, 0 diff --git a/user_guide/changelog.html b/user_guide/changelog.html index 25633b631..5740f7397 100644 --- a/user_guide/changelog.html +++ b/user_guide/changelog.html @@ -100,6 +100,7 @@ Hg Tag:

  • Added a second parameter (boolean) to $this->zip->read_dir('/path/to/directory', FALSE) to remove the preceding trail of empty folders when creating a Zip archive. This example would contain a zip with "directory" and all of its contents.
  • Added ability in the Image Library to handle PNG transparency for resize operations when using the GD lib.
  • Modified the Session class to prevent use if no encryption key is set in the config file.
  • +
  • Added a new config item to the Session class sess_expire_on_close to allow sessions to auto-expire when the browser window is closed.
  • Improved performance of the Encryption library on servers where Mcrypt is available.
  • Changed the default encryption mode in the Encryption library to CBC.
  • Added an encode_from_legacy() method to provide a way to transition encrypted data from CodeIgniter 1.x to CodeIgniter 2.x. diff --git a/user_guide/libraries/sessions.html b/user_guide/libraries/sessions.html index 3bd170d60..2d295d72e 100644 --- a/user_guide/libraries/sessions.html +++ b/user_guide/libraries/sessions.html @@ -257,6 +257,12 @@ do not need to write your own routine to do it.

    None The number of seconds you would like the session to last. The default value is 2 hours (7200 seconds). If you would like a non-expiring session set the value to zero: 0 + + sess_expire_on_close + FALSE + TRUE/FALSE (boolean) + Whether to cause the session to expire automatically when the browser window is closed. + sess_encrypt_cookie FALSE -- cgit v1.2.3-24-g4f1b