本文整理匯總了PHP中CI_Session_driver類的典型用法代碼示例。如果您正苦於以下問題:PHP CI_Session_driver類的具體用法?PHP CI_Session_driver怎麽用?PHP CI_Session_driver使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。
在下文中一共展示了CI_Session_driver類的11個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。
示例1: __construct
/**
* Class constructor
*
* @param array $params Configuration parameters
* @return void
*/
public function __construct(&$params)
{
parent::__construct($params);
if (empty($this->_config['save_path'])) {
log_message('error', 'Session: No Redis save path configured.');
} elseif (preg_match('#^unix://([^\\?]+)(?<options>\\?.+)?$#', $this->_config['save_path'], $matches)) {
$save_path = array('path' => $matches[1]);
} elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\\:(\\d+))?(?<options>\\?.+)?#', $this->_config['save_path'], $matches)) {
$save_path = array('host' => $matches[1], 'port' => empty($matches[2]) ? NULL : $matches[2]);
} else {
log_message('error', 'Session: Invalid Redis save path format: ' . $this->_config['save_path']);
}
if (isset($save_path)) {
if (isset($matches['options'])) {
$save_path['password'] = preg_match('#auth=([^\\s&]+)#', $matches['options'], $match) ? $match[1] : NULL;
$save_path['database'] = preg_match('#database=(\\d+)#', $matches['options'], $match) ? (int) $match[1] : NULL;
$save_path['timeout'] = preg_match('#timeout=(\\d+\\.\\d+)#', $matches['options'], $match) ? (double) $match[1] : NULL;
preg_match('#prefix=([^\\s&]+)#', $matches['options'], $match) && ($this->_key_prefix = $match[1]);
}
$this->_config['save_path'] = $save_path;
if ($this->_config['match_ip'] === TRUE) {
$this->_key_prefix .= $_SERVER['REMOTE_ADDR'] . ':';
}
}
}
示例2: __construct
/**
* Class constructor
*
* @param array $params Configuration parameters
* @return void
*/
public function __construct(&$params)
{
parent::__construct($params);
if (empty($this->_config['save_path'])) {
}
if ($this->_config['match_ip'] === TRUE) {
$this->_key_prefix .= $_SERVER['REMOTE_ADDR'] . ':';
}
}
示例3: __construct
/**
* Class constructor
*
* @param array $params Configuration parameters
* @return void
*/
public function __construct(&$params)
{
parent::__construct($params);
if (empty($this->_config['save_path'])) {
log_message('error', 'Session: No Memcached save path configured.');
}
if ($this->_config['match_ip'] === TRUE) {
$this->_key_prefix .= $_SERVER['REMOTE_ADDR'] . ':';
}
}
示例4: __construct
/**
* Class constructor
*
* @param array $params Configuration parameters
* @return void
*/
public function __construct(&$params)
{
parent::__construct($params);
if (isset($this->_config['save_path'])) {
$this->_config['save_path'] = rtrim($this->_config['save_path'], '/\\');
ini_set('session.save_path', $this->_config['save_path']);
} else {
$this->_config['save_path'] = rtrim(ini_get('session.save_path'), '/\\');
}
}
示例5: __construct
/**
* Class constructor.
*
* @param array $params Configuration parameters
*
* @return void
*/
public function __construct(&$params)
{
parent::__construct($params);
if (isset($this->_config['save_path'])) {
$this->_config['save_path'] = rtrim($this->_config['save_path'], '/\\');
ini_set('session.save_path', $this->_config['save_path']);
} else {
log_message('debug', 'Session: "sess_save_path" is empty; using "session.save_path" value from php.ini.');
$this->_config['save_path'] = rtrim(ini_get('session.save_path'), '/\\');
}
}
示例6: __construct
/**
* Class constructor
*
* @param array $params Configuration parameters
* @return void
*/
public function __construct(&$params)
{
// DO NOT forget this
parent::__construct($params);
//mongo PECL driver loaded ??
if (!class_exists('Mongo') && !class_exists('MongoClient')) {
show_error("The MongoDB PECL extension has not been installed or enabled", 500);
}
// Configuration & other initializations
$CI =& get_instance();
$CI->config->load('session_mongo');
$this->_build_config($CI);
}
示例7: __construct
/**
* Class constructor
*
* @param array $params Configuration parameters
* @return void
*/
public function __construct(&$params)
{
parent::__construct($params);
if (empty($this->_config['save_path'])) {
} elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\\:(\\d+))?(\\?.+)?#', $this->_config['save_path'], $matches)) {
isset($matches[3]) or $matches[3] = '';
// Just to avoid undefined index notices below
$this->_config['save_path'] = array('host' => $matches[1], 'port' => empty($matches[2]) ? NULL : $matches[2], 'password' => preg_match('#auth=([^\\s&]+)#', $matches[3], $match) ? $match[1] : NULL, 'database' => preg_match('#database=(\\d+)#', $matches[3], $match) ? (int) $match[1] : NULL, 'timeout' => preg_match('#timeout=(\\d+\\.\\d+)#', $matches[3], $match) ? (double) $match[1] : NULL);
preg_match('#prefix=([^\\s&]+)#', $matches[3], $match) && ($this->_key_prefix = $match[1]);
} else {
}
if ($this->_config['match_ip'] === TRUE) {
$this->_key_prefix .= $_SERVER['REMOTE_ADDR'] . ':';
}
}
示例8: __construct
/**
* Class constructor.
*
* @param array $params Configuration parameters
*
* @return void
*/
public function __construct(&$params)
{
parent::__construct($params);
if (empty($this->_config['save_path'])) {
log_message('error', 'Session: No Redis save path configured.');
} elseif (preg_match('#(?:tcp://)?([^:?]+)(?:\\:(\\d+))?(\\?.+)?#', $this->_config['save_path'], $matches)) {
isset($matches[3]) or $matches[3] = '';
// Just to avoid undefined index notices below
$this->_config['save_path'] = ['host' => $matches[1], 'port' => empty($matches[2]) ? null : $matches[2], 'password' => preg_match('#auth=([^\\s&]+)#', $matches[3], $match) ? $match[1] : null, 'database' => preg_match('#database=(\\d+)#', $matches[3], $match) ? (int) $match[1] : null, 'timeout' => preg_match('#timeout=(\\d+\\.\\d+)#', $matches[3], $match) ? (double) $match[1] : null];
preg_match('#prefix=([^\\s&]+)#', $matches[3], $match) && ($this->_key_prefix = $match[1]);
} else {
log_message('error', 'Session: Invalid Redis save path format: ' . $this->_config['save_path']);
}
if ($this->_config['match_ip'] === true) {
$this->_key_prefix .= $_SERVER['REMOTE_ADDR'] . ':';
}
}
示例9: _release_lock
protected function _release_lock()
{
return parent::_release_lock($session_id);
}
示例10: _release_lock
/**
* Release lock
*
* Releases a previously acquired lock
*
* @return bool
*/
protected function _release_lock()
{
if (!$this->_lock) {
return TRUE;
}
if ($this->_platform === 'mysql') {
if ($this->_db->query("SELECT RELEASE_LOCK('" . $this->_lock . "') AS ci_session_lock")->row()->ci_session_lock) {
$this->_lock = FALSE;
return TRUE;
}
return FALSE;
} elseif ($this->_platform === 'postgre') {
if ($this->_db->simple_query('SELECT pg_advisory_unlock(' . $this->_lock . ')')) {
$this->_lock = FALSE;
return TRUE;
}
return FALSE;
}
return parent::_release_lock();
}
示例11: __construct
/**
* Class constructor
*
* @param array $params Configuration parameters
* @return void
*/
public function __construct(&$params)
{
parent::__construct($params);
if (isset($this->_config['save_path'])) {
$this->_config['save_path'] = rtrim($this->_config['save_path'], '/\\');
ini_set('session.save_path', $this->_config['save_path']);
} else {
log_message('debug', 'Session: "sess_save_path" is empty; using "session.save_path" value from php.ini.');
$this->_config['save_path'] = rtrim(ini_get('session.save_path'), '/\\');
}
$this->_sid_regexp = $this->_config['_sid_regexp'];
isset(self::$func_override) or self::$func_override = extension_loaded('mbstring') && ini_get('mbstring.func_override');
}