/**
  * Wrapper for session_start()
  */
 public function start()
 {
     parent::start();
     $this->key = session_id();
     $this->ip = $_SESSION['__IP'];
     $this->changed = $_SESSION['__MTIME'];
 }
예제 #2
0
파일: rcube.php 프로젝트: gOOvER/EasySCP
 /**
  * Create session object and start the session.
  */
 public function session_init()
 {
     // session started (Installer?)
     if (session_id()) {
         return;
     }
     $sess_name = $this->config->get('session_name');
     $sess_domain = $this->config->get('session_domain');
     $sess_path = $this->config->get('session_path');
     $lifetime = $this->config->get('session_lifetime', 0) * 60;
     $is_secure = $this->config->get('use_https') || rcube_utils::https_check();
     // set session domain
     if ($sess_domain) {
         ini_set('session.cookie_domain', $sess_domain);
     }
     // set session path
     if ($sess_path) {
         ini_set('session.cookie_path', $sess_path);
     }
     // set session garbage collecting time according to session_lifetime
     if ($lifetime) {
         ini_set('session.gc_maxlifetime', $lifetime * 2);
     }
     ini_set('session.cookie_secure', $is_secure);
     ini_set('session.name', $sess_name ? $sess_name : 'roundcube_sessid');
     ini_set('session.use_cookies', 1);
     ini_set('session.use_only_cookies', 1);
     ini_set('session.cookie_httponly', 1);
     // use database for storing session data
     $this->session = new rcube_session($this->get_dbh(), $this->config);
     $path = $_SERVER['SCRIPT_NAME'];
     if (strpos($path, '://')) {
         $path = parse_url($path, PHP_URL_PATH);
         // #1490582
     }
     $this->session->register_gc_handler(array($this, 'gc'));
     $this->session->set_secret($this->config->get('des_key') . dirname($path));
     $this->session->set_ip_check($this->config->get('ip_check'));
     if ($this->config->get('session_auth_name')) {
         $this->session->set_cookiename($this->config->get('session_auth_name'));
     }
     // start PHP session (if not in CLI mode)
     if ($_SERVER['REMOTE_ADDR']) {
         $this->session->start();
     }
 }
예제 #3
0
 /**
  * Create session object and start the session.
  */
 public function session_init()
 {
     // session started (Installer?)
     if (session_id()) {
         return;
     }
     $sess_name = $this->config->get('session_name');
     $sess_domain = $this->config->get('session_domain');
     $sess_path = $this->config->get('session_path');
     $lifetime = $this->config->get('session_lifetime', 0) * 60;
     $is_secure = $this->config->get('use_https') || rcube_utils::https_check();
     // set session domain
     if ($sess_domain) {
         ini_set('session.cookie_domain', $sess_domain);
     }
     // set session path
     if ($sess_path) {
         ini_set('session.cookie_path', $sess_path);
     }
     // set session garbage collecting time according to session_lifetime
     if ($lifetime) {
         ini_set('session.gc_maxlifetime', $lifetime * 2);
     }
     ini_set('session.cookie_secure', $is_secure);
     ini_set('session.name', $sess_name ? $sess_name : 'roundcube_sessid');
     ini_set('session.use_cookies', 1);
     ini_set('session.use_only_cookies', 1);
     ini_set('session.cookie_httponly', 1);
     // get session driver instance
     $this->session = rcube_session::factory($this->config);
     $this->session->register_gc_handler(array($this, 'gc'));
     // start PHP session (if not in CLI mode)
     if ($_SERVER['REMOTE_ADDR']) {
         $this->session->start();
     }
 }