summaryrefslogtreecommitdiffstats
path: root/system/libraries/Session.php
diff options
context:
space:
mode:
Diffstat (limited to 'system/libraries/Session.php')
-rw-r--r--system/libraries/Session.php71
1 files changed, 36 insertions, 35 deletions
diff --git a/system/libraries/Session.php b/system/libraries/Session.php
index 28e469da7..16f373fd0 100644
--- a/system/libraries/Session.php
+++ b/system/libraries/Session.php
@@ -26,6 +26,7 @@
*/
class CI_Session {
+ var $CI;
var $now;
var $encryption = TRUE;
var $use_database = FALSE;
@@ -34,7 +35,7 @@ class CI_Session {
var $sess_cookie = 'ci_session';
var $userdata = array();
var $gc_probability = 5;
- var $object;
+
/**
@@ -45,7 +46,7 @@ class CI_Session {
*/
function CI_Session()
{
- $this->object =& get_instance();
+ $this->CI =& get_instance();
log_message('debug', "Session Class Initialized");
$this->sess_run();
@@ -73,7 +74,7 @@ class CI_Session {
* "last_visit" times based on each user's locale.
*
*/
- if (strtolower($this->object->config->item('time_reference')) == 'gmt')
+ if (strtolower($this->CI->config->item('time_reference')) == 'gmt')
{
$now = time();
$this->now = mktime(gmdate("H", $now), gmdate("i", $now), gmdate("s", $now), gmdate("m", $now), gmdate("d", $now), gmdate("Y", $now));
@@ -97,13 +98,13 @@ class CI_Session {
* two years from now.
*
*/
- $expiration = $this->object->config->item('sess_expiration');
+ $expiration = $this->CI->config->item('sess_expiration');
if (is_numeric($expiration))
{
if ($expiration > 0)
{
- $this->sess_length = $this->object->config->item('sess_expiration');
+ $this->sess_length = $this->CI->config->item('sess_expiration');
}
else
{
@@ -112,25 +113,25 @@ class CI_Session {
}
// Do we need encryption?
- $this->encryption = $this->object->config->item('sess_encrypt_cookie');
+ $this->encryption = $this->CI->config->item('sess_encrypt_cookie');
if ($this->encryption == TRUE)
{
- $this->object->load->library('encrypt');
+ $this->CI->load->library('encrypt');
}
// Are we using a database?
- if ($this->object->config->item('sess_use_database') === TRUE AND $this->object->config->item('sess_table_name') != '')
+ if ($this->CI->config->item('sess_use_database') === TRUE AND $this->CI->config->item('sess_table_name') != '')
{
$this->use_database = TRUE;
- $this->session_table = $this->object->config->item('sess_table_name');
- $this->object->load->database();
+ $this->session_table = $this->CI->config->item('sess_table_name');
+ $this->CI->load->database();
}
// Set the cookie name
- if ($this->object->config->item('sess_cookie_name') != FALSE)
+ if ($this->CI->config->item('sess_cookie_name') != FALSE)
{
- $this->sess_cookie = $this->object->config->item('cookie_prefix').$this->object->config->item('sess_cookie_name');
+ $this->sess_cookie = $this->CI->config->item('cookie_prefix').$this->CI->config->item('sess_cookie_name');
}
/*
@@ -172,7 +173,7 @@ class CI_Session {
function sess_read()
{
// Fetch the cookie
- $session = $this->object->input->cookie($this->sess_cookie);
+ $session = $this->CI->input->cookie($this->sess_cookie);
if ($session === FALSE)
{
@@ -183,7 +184,7 @@ class CI_Session {
// Decrypt and unserialize the data
if ($this->encryption == TRUE)
{
- $session = $this->object->encrypt->decode($session);
+ $session = $this->CI->encrypt->decode($session);
}
$session = @unserialize($this->strip_slashes($session));
@@ -202,14 +203,14 @@ class CI_Session {
}
// Does the IP Match?
- if ($this->object->config->item('sess_match_ip') == TRUE AND $session['ip_address'] != $this->object->input->ip_address())
+ if ($this->CI->config->item('sess_match_ip') == TRUE AND $session['ip_address'] != $this->CI->input->ip_address())
{
$this->sess_destroy();
return FALSE;
}
// Does the User Agent Match?
- if ($this->object->config->item('sess_match_useragent') == TRUE AND $session['user_agent'] != substr($this->object->input->user_agent(), 0, 50))
+ if ($this->CI->config->item('sess_match_useragent') == TRUE AND $session['user_agent'] != substr($this->CI->input->user_agent(), 0, 50))
{
$this->sess_destroy();
return FALSE;
@@ -218,19 +219,19 @@ class CI_Session {
// Is there a corresponding session in the DB?
if ($this->use_database === TRUE)
{
- $this->object->db->where('session_id', $session['session_id']);
+ $this->CI->db->where('session_id', $session['session_id']);
- if ($this->object->config->item('sess_match_ip') == TRUE)
+ if ($this->CI->config->item('sess_match_ip') == TRUE)
{
- $this->object->db->where('ip_address', $session['ip_address']);
+ $this->CI->db->where('ip_address', $session['ip_address']);
}
- if ($this->object->config->item('sess_match_useragent') == TRUE)
+ if ($this->CI->config->item('sess_match_useragent') == TRUE)
{
- $this->object->db->where('user_agent', $session['user_agent']);
+ $this->CI->db->where('user_agent', $session['user_agent']);
}
- $query = $this->object->db->get($this->session_table);
+ $query = $this->CI->db->get($this->session_table);
if ($query->num_rows() == 0)
{
@@ -242,8 +243,8 @@ class CI_Session {
$row = $query->row();
if (($row->last_activity + $this->sess_length) < $this->now)
{
- $this->object->db->where('session_id', $session['session_id']);
- $this->object->db->delete($this->session_table);
+ $this->CI->db->where('session_id', $session['session_id']);
+ $this->CI->db->delete($this->session_table);
$this->sess_destroy();
return FALSE;
}
@@ -272,15 +273,15 @@ class CI_Session {
if ($this->encryption == TRUE)
{
- $cookie_data = $this->object->encrypt->encode($cookie_data);
+ $cookie_data = $this->CI->encrypt->encode($cookie_data);
}
setcookie(
$this->sess_cookie,
$cookie_data,
$this->sess_length + $this->now,
- $this->object->config->item('cookie_path'),
- $this->object->config->item('cookie_domain'),
+ $this->CI->config->item('cookie_path'),
+ $this->CI->config->item('cookie_domain'),
0
);
}
@@ -304,8 +305,8 @@ class CI_Session {
$this->userdata = array(
'session_id' => md5(uniqid($sessid, TRUE)),
- 'ip_address' => $this->object->input->ip_address(),
- 'user_agent' => substr($this->object->input->user_agent(), 0, 50),
+ 'ip_address' => $this->CI->input->ip_address(),
+ 'user_agent' => substr($this->CI->input->user_agent(), 0, 50),
'last_activity' => $this->now
);
@@ -313,7 +314,7 @@ class CI_Session {
// Save the session in the DB if needed
if ($this->use_database === TRUE)
{
- $this->object->db->query($this->object->db->insert_string($this->session_table, $this->userdata));
+ $this->CI->db->query($this->CI->db->insert_string($this->session_table, $this->userdata));
}
// Write the cookie
@@ -342,7 +343,7 @@ class CI_Session {
// Update the session in the DB if needed
if ($this->use_database === TRUE)
{
- $this->object->db->query($this->object->db->update_string($this->session_table, array('last_activity' => $this->now), array('session_id' => $this->userdata['session_id'])));
+ $this->CI->db->query($this->CI->db->update_string($this->session_table, array('last_activity' => $this->now), array('session_id' => $this->userdata['session_id'])));
}
// Write the cookie
@@ -364,8 +365,8 @@ class CI_Session {
$this->sess_cookie,
addslashes(serialize(array())),
($this->now - 31500000),
- $this->object->config->item('cookie_path'),
- $this->object->config->item('cookie_domain'),
+ $this->CI->config->item('cookie_path'),
+ $this->CI->config->item('cookie_domain'),
0
);
}
@@ -389,8 +390,8 @@ class CI_Session {
{
$expire = $this->now - $this->sess_length;
- $this->object->db->where("last_activity < {$expire}");
- $this->object->db->delete($this->session_table);
+ $this->CI->db->where("last_activity < {$expire}");
+ $this->CI->db->delete($this->session_table);
log_message('debug', 'Session garbage collection performed.');
}