diff options
author | dchill42 <dchill42@gmail.com> | 2012-09-04 16:09:00 +0200 |
---|---|---|
committer | dchill42 <dchill42@gmail.com> | 2012-09-04 16:09:00 +0200 |
commit | 97b0d8331eecd7f3efe3a1c9a93de55a2f26e877 (patch) | |
tree | 3527dc5bb33af4fb2b7e0d2bb10c355961aaee05 /system/libraries/Session | |
parent | ffeaf809d5d1fbb0a506ff2fcdc9cbe2c657e1e4 (diff) |
Fixed issues #1756 and #1711
Signed-off-by: dchill42 <dchill42@gmail.com>
Diffstat (limited to 'system/libraries/Session')
-rwxr-xr-x | system/libraries/Session/drivers/Session_cookie.php | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/system/libraries/Session/drivers/Session_cookie.php b/system/libraries/Session/drivers/Session_cookie.php index 69e5fde14..ce63b976f 100755 --- a/system/libraries/Session/drivers/Session_cookie.php +++ b/system/libraries/Session/drivers/Session_cookie.php @@ -309,6 +309,7 @@ class CI_Session_cookie extends CI_Session_driver { if ($this->sess_use_database === TRUE && isset($this->userdata['session_id'])) { $this->CI->db->delete($this->sess_table_name, array('session_id' => $this->userdata['session_id'])); + $this->data_dirty = FALSE; } // Kill the cookie @@ -571,11 +572,22 @@ class CI_Session_cookie extends CI_Session_driver { $set['user_data'] = $this->_serialize($userdata); } + // Is caching in effect? Turn it off + $db_cache = $this->CI->db->cache_on; + $this->CI->db->cache_off(); + // Run the update query // Any time we change the session id, it gets updated immediately, // so our where clause below is always safe $this->CI->db->update($this->sess_table_name, $set, array('session_id' => $this->userdata['session_id'])); + // Was caching in effect? + if ($db_cache) + { + // Turn it back on + $this->CI->db->cache_on(); + } + // Clear dirty flag to prevent double updates $this->data_dirty = FALSE; |