/**
  * 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'] . ':';
     }
 }
示例#2
0
 /**
  * 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'), '/\\');
     }
 }
示例#3
0
 /**
  * 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'] = 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 {
         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'] . ':';
     }
 }
示例#4
0
 /**
  * Class constructor
  *
  * @param	array	$params	Configuration parameters
  * @return	void
  */
 public function __construct(&$params)
 {
     parent::__construct($params);
     $YH =& get_instance();
     isset($YH->db) or $YH->load->database();
     $this->_db = $YH->db;
     if (!$this->_db instanceof YH_DB_query_builder) {
         throw new Exception('Query Builder not enabled for the configured database. Aborting.');
     } elseif ($this->_db->pconnect) {
         throw new Exception('Configured database connection is persistent. Aborting.');
     } elseif ($this->_db->cache_on) {
         throw new Exception('Configured database connection has cache enabled. Aborting.');
     }
     $db_driver = $this->_db->dbdriver . (empty($this->_db->subdriver) ? '' : '_' . $this->_db->subdriver);
     if (strpos($db_driver, 'mysql') !== FALSE) {
         $this->_platform = 'mysql';
     } elseif (in_array($db_driver, array('postgre', 'pdo_pgsql'), TRUE)) {
         $this->_platform = 'postgre';
     }
     // Note: BC work-around for the old 'sess_table_name' setting, should be removed in the future.
     isset($this->_config['save_path']) or $this->_config['save_path'] = config_item('sess_table_name');
 }