summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--system/libraries/Session.php7
-rw-r--r--user_guide/changelog.html1
-rw-r--r--user_guide/libraries/sessions.html6
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: </p>
<li>Added a second parameter (boolean) to <kbd>$this->zip->read_dir('/path/to/directory', FALSE)</kbd> 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.</li>
<li>Added ability in the Image Library to handle PNG transparency for resize operations when using the GD lib.</li>
<li>Modified the Session class to prevent use if no encryption key is set in the config file.</li>
+ <li>Added a new config item to the Session class <kbd>sess_expire_on_close</kbd> to allow sessions to auto-expire when the browser window is closed.</li>
<li>Improved performance of the Encryption library on servers where Mcrypt is available.</li>
<li>Changed the default encryption mode in the Encryption library to CBC.</li>
<li>Added an <kbd>encode_from_legacy()</kbd> 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
@@ -258,6 +258,12 @@ do not need to write your own routine to do it.</p>
<td class="td">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</td>
</tr>
<tr>
+ <td class="td"><strong>sess_expire_on_close</strong></td>
+ <td class="td">FALSE</td>
+ <td class="td">TRUE/FALSE (boolean)</td>
+ <td class="td">Whether to cause the session to expire automatically when the browser window is closed.</td>
+</tr>
+<tr>
<td class="td"><strong>sess_encrypt_cookie</strong></td>
<td class="td">FALSE</td>
<td class="td">TRUE/FALSE (boolean)</td>