summaryrefslogtreecommitdiffstats
path: root/system/libraries/Session/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'system/libraries/Session/drivers')
-rwxr-xr-xsystem/libraries/Session/drivers/Session_cookie.php30
-rwxr-xr-xsystem/libraries/Session/drivers/Session_native.php2
2 files changed, 27 insertions, 5 deletions
diff --git a/system/libraries/Session/drivers/Session_cookie.php b/system/libraries/Session/drivers/Session_cookie.php
index e39ada052..19ccd417d 100755
--- a/system/libraries/Session/drivers/Session_cookie.php
+++ b/system/libraries/Session/drivers/Session_cookie.php
@@ -190,13 +190,13 @@ class CI_Session_cookie extends CI_Session_driver {
'cookie_domain', 'cookie_secure', 'cookie_httponly', 'sess_time_to_update', 'time_reference', 'cookie_prefix',
'encryption_key') as $key)
{
- $this->$key = isset($this->parent->params[$key]) ? $this->parent->params[$key] :
+ $this->$key = isset($this->_parent->params[$key]) ? $this->_parent->params[$key] :
$this->CI->config->item($key);
}
if ($this->encryption_key === '')
{
- show_error('In order to use the Session Cookie driver you are required to set an encryption key '.
+ show_error('In order to use the Cookie Session driver you are required to set an encryption key '.
'in your config file.');
}
@@ -309,7 +309,7 @@ class CI_Session_cookie extends CI_Session_driver {
}
// Kill the cookie
- setcookie($this->sess_cookie_name, addslashes(serialize(array())), ($this->now - 31500000),
+ $this->_setcookie($this->sess_cookie_name, addslashes(serialize(array())), ($this->now - 31500000),
$this->cookie_path, $this->cookie_domain, 0);
// Kill session data
@@ -632,11 +632,33 @@ class CI_Session_cookie extends CI_Session_driver {
$expire = ($this->sess_expire_on_close === TRUE) ? 0 : $this->sess_expiration + time();
// Set the cookie
- setcookie($this->sess_cookie_name, $cookie_data, $expire, $this->cookie_path, $this->cookie_domain,
+ $this->_setcookie($this->sess_cookie_name, $cookie_data, $expire, $this->cookie_path, $this->cookie_domain,
$this->cookie_secure, $this->cookie_httponly);
}
/**
+ * Set a cookie with the system
+ *
+ * This abstraction of the setcookie call allows overriding for unit testing
+ *
+ * @access protected
+ * @param string Cookie name
+ * @param string Cookie value
+ * @param int Expiration time
+ * @param string Cookie path
+ * @param string Cookie domain
+ * @param bool Secure connection flag
+ * @param bool HTTP protocol only flag
+ * @return void
+ */
+ protected function _setcookie($name, $value = '', $expire = 0, $path = '', $domain = '', $secure = false,
+ $httponly = false)
+ {
+ // Set the cookie
+ setcookie($name, $value, $expire, $path, $domain, $secure, $httponly);
+ }
+
+ /**
* Serialize an array
*
* This function first converts any slashes found in the array to a temporary
diff --git a/system/libraries/Session/drivers/Session_native.php b/system/libraries/Session/drivers/Session_native.php
index 8388e06b5..27db942eb 100755
--- a/system/libraries/Session/drivers/Session_native.php
+++ b/system/libraries/Session/drivers/Session_native.php
@@ -39,7 +39,7 @@ class CI_Session_native extends CI_Session_driver {
foreach (array('sess_cookie_name', 'sess_expire_on_close', 'sess_expiration', 'sess_match_ip',
'sess_match_useragent', 'cookie_prefix', 'cookie_path', 'cookie_domain') as $key)
{
- $config[$key] = isset($this->parent->params[$key]) ? $this->parent->params[$key] : $CI->config->item($key);
+ $config[$key] = isset($this->_parent->params[$key]) ? $this->_parent->params[$key] : $CI->config->item($key);
}
// Set session name, if specified