Fixed issues #1756 and #1711
Signed-off-by: dchill42 <dchill42@gmail.com>
diff --git a/system/libraries/Session/drivers/Session_cookie.php b/system/libraries/Session/drivers/Session_cookie.php
index 69e5fde..ce63b97 100755
--- a/system/libraries/Session/drivers/Session_cookie.php
+++ b/system/libraries/Session/drivers/Session_cookie.php
@@ -309,6 +309,7 @@
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 @@
$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;