mirror of
https://github.com/claudehohl/Stikked.git
synced 2025-04-25 12:31:06 -05:00
codeigniter 2.1.3
This commit is contained in:
parent
1cd3aad63a
commit
270fb37319
@ -33,7 +33,7 @@
|
||||
* @var string
|
||||
*
|
||||
*/
|
||||
define('CI_VERSION', '2.1.2');
|
||||
define('CI_VERSION', '2.1.3');
|
||||
|
||||
/**
|
||||
* CodeIgniter Branch (Core = TRUE, Reactor = FALSE)
|
||||
|
@ -187,7 +187,7 @@ if ( ! function_exists('load_class'))
|
||||
*/
|
||||
if ( ! function_exists('is_loaded'))
|
||||
{
|
||||
function is_loaded($class = '')
|
||||
function &is_loaded($class = '')
|
||||
{
|
||||
static $_is_loaded = array();
|
||||
|
||||
|
@ -99,12 +99,12 @@ class CI_Config {
|
||||
$found = FALSE;
|
||||
$loaded = FALSE;
|
||||
|
||||
$check_locations = defined('ENVIRONMENT')
|
||||
? array(ENVIRONMENT.'/'.$file, $file)
|
||||
: array($file);
|
||||
|
||||
foreach ($this->_config_paths as $path)
|
||||
{
|
||||
$check_locations = defined('ENVIRONMENT')
|
||||
? array(ENVIRONMENT.'/'.$file, $file)
|
||||
: array($file);
|
||||
|
||||
foreach ($check_locations as $location)
|
||||
{
|
||||
$file_path = $path.'config/'.$location.'.php';
|
||||
@ -168,7 +168,7 @@ class CI_Config {
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
show_error('The configuration file '.$file.'.php'.' does not exist.');
|
||||
show_error('The configuration file '.$file.'.php does not exist.');
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
@ -279,7 +279,7 @@ class CI_Config {
|
||||
*/
|
||||
function base_url($uri = '')
|
||||
{
|
||||
return $this->slash_item('base_url').ltrim($this->_uri_string($uri),'/');
|
||||
return $this->slash_item('base_url').ltrim($this->_uri_string($uri), '/');
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------
|
||||
|
@ -73,13 +73,13 @@ class CI_Input {
|
||||
*/
|
||||
protected $headers = array();
|
||||
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Sets whether to globally enable the XSS processing
|
||||
* and whether to allow the $_GET array
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
@ -306,51 +306,50 @@ class CI_Input {
|
||||
/**
|
||||
* Fetch the IP Address
|
||||
*
|
||||
* @access public
|
||||
* @return string
|
||||
*/
|
||||
function ip_address()
|
||||
public function ip_address()
|
||||
{
|
||||
if ($this->ip_address !== FALSE)
|
||||
{
|
||||
return $this->ip_address;
|
||||
}
|
||||
|
||||
if (config_item('proxy_ips') != '' && $this->server('HTTP_X_FORWARDED_FOR') && $this->server('REMOTE_ADDR'))
|
||||
$proxy_ips = config_item('proxy_ips');
|
||||
if ( ! empty($proxy_ips))
|
||||
{
|
||||
$proxies = preg_split('/[\s,]/', config_item('proxy_ips'), -1, PREG_SPLIT_NO_EMPTY);
|
||||
$proxies = is_array($proxies) ? $proxies : array($proxies);
|
||||
$proxy_ips = explode(',', str_replace(' ', '', $proxy_ips));
|
||||
foreach (array('HTTP_X_FORWARDED_FOR', 'HTTP_CLIENT_IP', 'HTTP_X_CLIENT_IP', 'HTTP_X_CLUSTER_CLIENT_IP') as $header)
|
||||
{
|
||||
if (($spoof = $this->server($header)) !== FALSE)
|
||||
{
|
||||
// Some proxies typically list the whole chain of IP
|
||||
// addresses through which the client has reached us.
|
||||
// e.g. client_ip, proxy_ip1, proxy_ip2, etc.
|
||||
if (strpos($spoof, ',') !== FALSE)
|
||||
{
|
||||
$spoof = explode(',', $spoof, 2);
|
||||
$spoof = $spoof[0];
|
||||
}
|
||||
|
||||
$this->ip_address = in_array($_SERVER['REMOTE_ADDR'], $proxies) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR'];
|
||||
if ( ! $this->valid_ip($spoof))
|
||||
{
|
||||
$spoof = FALSE;
|
||||
}
|
||||
else
|
||||
{
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->ip_address = ($spoof !== FALSE && in_array($_SERVER['REMOTE_ADDR'], $proxy_ips, TRUE))
|
||||
? $spoof : $_SERVER['REMOTE_ADDR'];
|
||||
}
|
||||
elseif ($this->server('REMOTE_ADDR') AND $this->server('HTTP_CLIENT_IP'))
|
||||
{
|
||||
$this->ip_address = $_SERVER['HTTP_CLIENT_IP'];
|
||||
}
|
||||
elseif ($this->server('REMOTE_ADDR'))
|
||||
else
|
||||
{
|
||||
$this->ip_address = $_SERVER['REMOTE_ADDR'];
|
||||
}
|
||||
elseif ($this->server('HTTP_CLIENT_IP'))
|
||||
{
|
||||
$this->ip_address = $_SERVER['HTTP_CLIENT_IP'];
|
||||
}
|
||||
elseif ($this->server('HTTP_X_FORWARDED_FOR'))
|
||||
{
|
||||
$this->ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
|
||||
}
|
||||
|
||||
if ($this->ip_address === FALSE)
|
||||
{
|
||||
$this->ip_address = '0.0.0.0';
|
||||
return $this->ip_address;
|
||||
}
|
||||
|
||||
if (strpos($this->ip_address, ',') !== FALSE)
|
||||
{
|
||||
$x = explode(',', $this->ip_address);
|
||||
$this->ip_address = trim(end($x));
|
||||
}
|
||||
|
||||
if ( ! $this->valid_ip($this->ip_address))
|
||||
{
|
||||
@ -642,8 +641,8 @@ class CI_Input {
|
||||
$_SERVER['PHP_SELF'] = strip_tags($_SERVER['PHP_SELF']);
|
||||
|
||||
|
||||
// CSRF Protection check
|
||||
if ($this->_enable_csrf == TRUE)
|
||||
// CSRF Protection check on HTTP requests
|
||||
if ($this->_enable_csrf == TRUE && ! $this->is_cli_request())
|
||||
{
|
||||
$this->security->csrf_verify();
|
||||
}
|
||||
@ -837,11 +836,11 @@ class CI_Input {
|
||||
*
|
||||
* Test to see if a request was made from the command line
|
||||
*
|
||||
* @return boolean
|
||||
* @return bool
|
||||
*/
|
||||
public function is_cli_request()
|
||||
{
|
||||
return (php_sapi_name() == 'cli') or defined('STDIN');
|
||||
return (php_sapi_name() === 'cli' OR defined('STDIN'));
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -98,26 +98,32 @@ class CI_Security {
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
// CSRF config
|
||||
foreach(array('csrf_expire', 'csrf_token_name', 'csrf_cookie_name') as $key)
|
||||
// Is CSRF protection enabled?
|
||||
if (config_item('csrf_protection') === TRUE)
|
||||
{
|
||||
if (FALSE !== ($val = config_item($key)))
|
||||
// CSRF config
|
||||
foreach (array('csrf_expire', 'csrf_token_name', 'csrf_cookie_name') as $key)
|
||||
{
|
||||
$this->{'_'.$key} = $val;
|
||||
if (FALSE !== ($val = config_item($key)))
|
||||
{
|
||||
$this->{'_'.$key} = $val;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Append application specific cookie prefix
|
||||
if (config_item('cookie_prefix'))
|
||||
{
|
||||
$this->_csrf_cookie_name = config_item('cookie_prefix').$this->_csrf_cookie_name;
|
||||
}
|
||||
// Append application specific cookie prefix
|
||||
if (config_item('cookie_prefix'))
|
||||
{
|
||||
$this->_csrf_cookie_name = config_item('cookie_prefix').$this->_csrf_cookie_name;
|
||||
}
|
||||
|
||||
// Set the CSRF hash
|
||||
$this->_csrf_set_hash();
|
||||
// Set the CSRF hash
|
||||
$this->_csrf_set_hash();
|
||||
}
|
||||
|
||||
log_message('debug', "Security Class Initialized");
|
||||
}
|
||||
@ -131,15 +137,14 @@ class CI_Security {
|
||||
*/
|
||||
public function csrf_verify()
|
||||
{
|
||||
// If no POST data exists we will set the CSRF cookie
|
||||
if (count($_POST) == 0)
|
||||
// If it's not a POST request we will set the CSRF cookie
|
||||
if (strtoupper($_SERVER['REQUEST_METHOD']) !== 'POST')
|
||||
{
|
||||
return $this->csrf_set_cookie();
|
||||
}
|
||||
|
||||
// Do the tokens exist in both the _POST and _COOKIE arrays?
|
||||
if ( ! isset($_POST[$this->_csrf_token_name]) OR
|
||||
! isset($_COOKIE[$this->_csrf_cookie_name]))
|
||||
if ( ! isset($_POST[$this->_csrf_token_name], $_COOKIE[$this->_csrf_cookie_name]))
|
||||
{
|
||||
$this->csrf_show_error();
|
||||
}
|
||||
@ -159,7 +164,7 @@ class CI_Security {
|
||||
$this->_csrf_set_hash();
|
||||
$this->csrf_set_cookie();
|
||||
|
||||
log_message('debug', "CSRF token verified ");
|
||||
log_message('debug', 'CSRF token verified');
|
||||
|
||||
return $this;
|
||||
}
|
||||
@ -176,14 +181,9 @@ class CI_Security {
|
||||
$expire = time() + $this->_csrf_expire;
|
||||
$secure_cookie = (config_item('cookie_secure') === TRUE) ? 1 : 0;
|
||||
|
||||
if ($secure_cookie)
|
||||
if ($secure_cookie && (empty($_SERVER['HTTPS']) OR strtolower($_SERVER['HTTPS']) === 'off'))
|
||||
{
|
||||
$req = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : FALSE;
|
||||
|
||||
if ( ! $req OR $req == 'off')
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
setcookie($this->_csrf_cookie_name, $this->_csrf_hash, $expire, config_item('cookie_path'), config_item('cookie_domain'), $secure_cookie);
|
||||
@ -871,7 +871,6 @@ class CI_Security {
|
||||
}
|
||||
|
||||
}
|
||||
// END Security Class
|
||||
|
||||
/* End of file Security.php */
|
||||
/* Location: ./system/libraries/Security.php */
|
||||
/* Location: ./system/libraries/Security.php */
|
@ -26,9 +26,9 @@
|
||||
*/
|
||||
class CI_DB_oci8_result extends CI_DB_result {
|
||||
|
||||
var $stmt_id;
|
||||
var $curs_id;
|
||||
var $limit_used;
|
||||
public $stmt_id;
|
||||
public $curs_id;
|
||||
public $limit_used;
|
||||
|
||||
/**
|
||||
* Number of rows in the result set.
|
||||
@ -36,8 +36,6 @@ class CI_DB_oci8_result extends CI_DB_result {
|
||||
* Oracle doesn't have a graceful way to retun the number of rows
|
||||
* so we have to use what amounts to a hack.
|
||||
*
|
||||
*
|
||||
* @access public
|
||||
* @return integer
|
||||
*/
|
||||
public function num_rows()
|
||||
@ -53,7 +51,7 @@ class CI_DB_oci8_result extends CI_DB_result {
|
||||
}
|
||||
}
|
||||
|
||||
return $rowcount;
|
||||
return $this->num_rows;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
@ -26,26 +26,27 @@
|
||||
*/
|
||||
class CI_DB_pdo_result extends CI_DB_result {
|
||||
|
||||
public $num_rows;
|
||||
|
||||
/**
|
||||
* Number of rows in the result set
|
||||
*
|
||||
* @access public
|
||||
* @return integer
|
||||
* @return int
|
||||
*/
|
||||
function num_rows()
|
||||
public function num_rows()
|
||||
{
|
||||
if (is_numeric(stripos($this->result_id->queryString, 'SELECT')))
|
||||
if (is_int($this->num_rows))
|
||||
{
|
||||
$dbh = $this->conn_id;
|
||||
$query = $dbh->query($this->result_id->queryString);
|
||||
$result = $query->fetchAll();
|
||||
unset($dbh, $query);
|
||||
return count($result);
|
||||
return $this->num_rows;
|
||||
}
|
||||
else
|
||||
elseif (($this->num_rows = $this->result_id->rowCount()) > 0)
|
||||
{
|
||||
return $this->result_id->rowCount();
|
||||
return $this->num_rows;
|
||||
}
|
||||
|
||||
$this->num_rows = count($this->result_id->fetchAll());
|
||||
$this->result_id->execute();
|
||||
return $this->num_rows;
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
@ -151,13 +151,12 @@ class CI_Cache_file extends CI_Driver {
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
$data = read_file($this->_cache_path.$id);
|
||||
|
||||
$data = read_file($this->_cache_path.$id);
|
||||
$data = unserialize($data);
|
||||
|
||||
|
||||
if (is_array($data))
|
||||
{
|
||||
$data = $data['data'];
|
||||
$mtime = filemtime($this->_cache_path.$id);
|
||||
|
||||
if ( ! isset($data['ttl']))
|
||||
@ -166,11 +165,11 @@ class CI_Cache_file extends CI_Driver {
|
||||
}
|
||||
|
||||
return array(
|
||||
'expire' => $mtime + $data['ttl'],
|
||||
'expire' => $mtime + $data['ttl'],
|
||||
'mtime' => $mtime
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
@ -57,7 +57,7 @@ class CI_Migration {
|
||||
}
|
||||
|
||||
// If not set, set it
|
||||
$this->_migration_path == '' OR $this->_migration_path = APPPATH . 'migrations/';
|
||||
$this->_migration_path == '' AND $this->_migration_path = APPPATH . 'migrations/';
|
||||
|
||||
// Add trailing slash if not set
|
||||
$this->_migration_path = rtrim($this->_migration_path, '/').'/';
|
||||
@ -89,8 +89,7 @@ class CI_Migration {
|
||||
* Calls each migration step required to get to the schema version of
|
||||
* choice
|
||||
*
|
||||
* @access public
|
||||
* @param $version integer Target schema version
|
||||
* @param int Target schema version
|
||||
* @return mixed TRUE if already latest, FALSE if failed, int if upgraded
|
||||
*/
|
||||
public function version($target_version)
|
||||
@ -105,14 +104,13 @@ class CI_Migration {
|
||||
++$stop;
|
||||
$step = 1;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
// Moving Down
|
||||
$step = -1;
|
||||
}
|
||||
|
||||
$method = $step === 1 ? 'up' : 'down';
|
||||
|
||||
$method = ($step === 1) ? 'up' : 'down';
|
||||
$migrations = array();
|
||||
|
||||
// We now prepare to actually DO the migrations
|
||||
@ -216,7 +214,6 @@ class CI_Migration {
|
||||
/**
|
||||
* Set's the schema to the latest migration
|
||||
*
|
||||
* @access public
|
||||
* @return mixed true if already latest, false if failed, int if upgraded
|
||||
*/
|
||||
public function latest()
|
||||
@ -228,7 +225,7 @@ class CI_Migration {
|
||||
}
|
||||
|
||||
$last_migration = basename(end($migrations));
|
||||
|
||||
|
||||
// Calculate the last migration step from existing migration
|
||||
// filenames and procceed to the standard version migration
|
||||
return $this->version((int) substr($last_migration, 0, 3));
|
||||
@ -239,7 +236,6 @@ class CI_Migration {
|
||||
/**
|
||||
* Set's the schema to the migration version set in config
|
||||
*
|
||||
* @access public
|
||||
* @return mixed true if already current, false if failed, int if upgraded
|
||||
*/
|
||||
public function current()
|
||||
@ -252,7 +248,6 @@ class CI_Migration {
|
||||
/**
|
||||
* Error string
|
||||
*
|
||||
* @access public
|
||||
* @return string Error message returned as a string
|
||||
*/
|
||||
public function error_string()
|
||||
@ -265,7 +260,6 @@ class CI_Migration {
|
||||
/**
|
||||
* Set's the schema to the latest migration
|
||||
*
|
||||
* @access protected
|
||||
* @return mixed true if already latest, false if failed, int if upgraded
|
||||
*/
|
||||
protected function find_migrations()
|
||||
@ -273,7 +267,7 @@ class CI_Migration {
|
||||
// Load all *_*.php files in the migrations path
|
||||
$files = glob($this->_migration_path . '*_*.php');
|
||||
$file_count = count($files);
|
||||
|
||||
|
||||
for ($i = 0; $i < $file_count; $i++)
|
||||
{
|
||||
// Mark wrongly formatted files as false for later filtering
|
||||
@ -283,9 +277,8 @@ class CI_Migration {
|
||||
$files[$i] = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
sort($files);
|
||||
|
||||
sort($files);
|
||||
return $files;
|
||||
}
|
||||
|
||||
@ -294,8 +287,7 @@ class CI_Migration {
|
||||
/**
|
||||
* Retrieves current schema version
|
||||
*
|
||||
* @access protected
|
||||
* @return integer Current Migration
|
||||
* @return int Current Migration
|
||||
*/
|
||||
protected function _get_version()
|
||||
{
|
||||
@ -308,9 +300,8 @@ class CI_Migration {
|
||||
/**
|
||||
* Stores the current schema version
|
||||
*
|
||||
* @access protected
|
||||
* @param $migrations integer Migration reached
|
||||
* @return void Outputs a report of the migration
|
||||
* @param int Migration reached
|
||||
* @return bool
|
||||
*/
|
||||
protected function _update_version($migrations)
|
||||
{
|
||||
@ -324,8 +315,7 @@ class CI_Migration {
|
||||
/**
|
||||
* Enable the use of CI super-global
|
||||
*
|
||||
* @access public
|
||||
* @param $var
|
||||
* @param mixed $var
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($var)
|
||||
|
@ -506,7 +506,7 @@ class CI_Profiler {
|
||||
|
||||
foreach ($this->CI->session->all_userdata() as $key => $val)
|
||||
{
|
||||
if (is_array($val))
|
||||
if (is_array($val) OR is_object($val))
|
||||
{
|
||||
$val = print_r($val, TRUE);
|
||||
}
|
||||
|
@ -97,7 +97,7 @@ class CI_Session {
|
||||
{
|
||||
$this->sess_expiration = (60*60*24*365*2);
|
||||
}
|
||||
|
||||
|
||||
// Set the cookie name
|
||||
$this->sess_cookie_name = $this->cookie_prefix.$this->sess_cookie_name;
|
||||
|
||||
@ -399,7 +399,7 @@ class CI_Session {
|
||||
function sess_destroy()
|
||||
{
|
||||
// Kill the session DB row
|
||||
if ($this->sess_use_database === TRUE AND isset($this->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);
|
||||
@ -414,6 +414,9 @@ class CI_Session {
|
||||
$this->cookie_domain,
|
||||
0
|
||||
);
|
||||
|
||||
// Kill session data
|
||||
$this->userdata = array();
|
||||
}
|
||||
|
||||
// --------------------------------------------------------------------
|
||||
|
Loading…
x
Reference in New Issue
Block a user