summaryrefslogtreecommitdiffstats
path: root/system/libraries/Session
diff options
context:
space:
mode:
Diffstat (limited to 'system/libraries/Session')
-rwxr-xr-xsystem/libraries/Session/Session.php11
-rwxr-xr-xsystem/libraries/Session/drivers/Session_cookie.php2
-rwxr-xr-xsystem/libraries/Session/drivers/Session_native.php3
3 files changed, 10 insertions, 6 deletions
diff --git a/system/libraries/Session/Session.php b/system/libraries/Session/Session.php
index 97eab803f..1f24456a4 100755
--- a/system/libraries/Session/Session.php
+++ b/system/libraries/Session/Session.php
@@ -141,14 +141,17 @@ class CI_Session extends CI_Driver_Library {
$child = str_replace($this->lib_name.'_', '', $driver);
if (isset($this->$child))
{
- // Make driver current and sync userdata
- $this->current = $this->$child;
- $this->userdata =& $this->current->get_userdata();
+ // See if driver is already current
+ if ($this->$child !== $this->current) {
+ // Make driver current and sync userdata
+ $this->current = $this->$child;
+ $this->userdata =& $this->current->get_userdata();
+ }
}
else
{
// Load new driver
- $this->load_driver($driver);
+ $this->load_driver($child);
}
}
}
diff --git a/system/libraries/Session/drivers/Session_cookie.php b/system/libraries/Session/drivers/Session_cookie.php
index 8ac92e432..89e81386f 100755
--- a/system/libraries/Session/drivers/Session_cookie.php
+++ b/system/libraries/Session/drivers/Session_cookie.php
@@ -325,7 +325,7 @@ class CI_Session_cookie extends CI_Session_driver {
public function sess_destroy()
{
// Kill the session DB row
- if ($this->sess_use_database === TRUE && $this->has_userdata('session_id'))
+ if ($this->sess_use_database === TRUE && isset($this->userdata['session_id']))
{
$this->CI->db->where('session_id', $this->userdata['session_id']);
$this->CI->db->delete($this->sess_table_name);
diff --git a/system/libraries/Session/drivers/Session_native.php b/system/libraries/Session/drivers/Session_native.php
index 04c985574..8ba8e749a 100755
--- a/system/libraries/Session/drivers/Session_native.php
+++ b/system/libraries/Session/drivers/Session_native.php
@@ -56,7 +56,8 @@ class CI_Session_native extends CI_Session_driver {
// Set session name, if specified
if ($config['sess_cookie_name'])
{
- $name = $config['sess_cookie_name'];
+ // Differentiate name from cookie driver with '_id' suffix
+ $name = $config['sess_cookie_name'].'_id';
if ($config['cookie_prefix'])
{
// Prepend cookie prefix