Exemplo n.º 1
0
 /**
  * Start the session
  */
 public static function startSession()
 {
     require_once 'HTTP/Session2.php';
     $user_id = TIP::getUserId();
     if ($user_id) {
         // For a logged in user, use the special TIP container
         HTTP_Session2::useCookies(false);
         HTTP_Session2::setContainer('TIP');
         HTTP_Session2::start('TIP_Session', $user_id);
     } else {
         // For anonymous users, cookie with an automatic session id is used
         HTTP_Session2::useCookies(true);
         HTTP_Session2::start('TIP_Session');
     }
     HTTP_Session2::setExpire(time() + 3600 * 4);
     if (HTTP_Session2::isExpired()) {
         HTTP_Session2::destroy();
         TIP::notifyInfo('session');
     }
 }
Exemplo n.º 2
0
 /**
  * セッションスタート
  *
  * @return void
  */
 private function _start()
 {
     static $hasStarted = false;
     if ($hasStarted !== false || $this->_config['adapter'] === self::ADAPTER_NONE) {
         return;
     }
     $hasStarted = true;
     $this->_setAdpator($this->_config);
     HTTP_Session2::start(null);
     // セッションを通じた固定トークン
     if (HTTP_Session2::isNew()) {
         BEAR::dependency('BEAR_Form_Token')->newSessionToken();
     }
     // 有効期限
     if (isset($this->_config['idle']) && $this->_config['idle']) {
         HTTP_Session2::setIdle($this->_config['idle']);
         // セッションの期限切れ
         if (HTTP_Session2::isIdle()) {
             if (isset($this->_config['callback']) && is_callable($this->_config['callback'])) {
                 $method = $this->_config['callback'][1];
                 BEAR::dependency($this->_config['callback'][0], array())->{$method}();
             } else {
                 // コールバック指定がないとセッション破壊
                 HTTP_Session2::destroy();
             }
         } else {
             HTTP_Session2::updateIdle();
         }
     }
     // セッションを開始してから(=最初のアクセス)からセッションが切れる時間を指定
     if (isset($this->_config['expire']) && $this->_config['expire']) {
         HTTP_Session2::setExpire($this->_config['expire'], false);
         if (HTTP_Session2::isExpired()) {
             if (isset($this->_config['expire_callback']) && is_callable($this->_config['expire_callback'])) {
                 $method = $this->_config['expire_callback'][1];
                 BEAR::dependency($this->_config['expire_callback'][0], array())->{$method}();
             } else {
                 // コールバック指定がないとセッション破壊
                 HTTP_Session2::destroy();
             }
         }
     }
     // GCが働くまでの時間
     if (isset($this->_config['gc_max_lifetime']) && $this->_config['gc_max_lifetime']) {
         HTTP_Session2::setGcMaxLifeTime($this->_config['gc_max_lifetime']);
     }
     // セッションスタート
     $this->_log->log('Session Start', array('id' => session_id(), 'module' => session_module_name() . '/' . $this->_config['adapter']));
 }
Exemplo n.º 3
0
 if (!defined('SKIP_SQL_INIT')) {
     $sql = CreateObject('org.freemedsoftware.core.FreemedDb');
 }
 // ********************** START SESSION **************************
 if (!defined('SESSION_DISABLE') and !defined('SKIP_SQL_INIT')) {
     LoadObjectDependency('net.php.pear.HTTP_Session2');
     HTTP_Session2::useTransSID(false);
     HTTP_Session2::useCookies(true);
     // using an existing MDB2 connection
     HTTP_Session2::setContainer('MDB2', array('dsn' => $GLOBALS['sql']->GetMDB2Object(), 'table' => 'session'));
     HTTP_Session2::start();
     HTTP_Session2::setExpire(time() + 60 * 60);
     // set expire to 60 minutes
     HTTP_Session2::setIdle(time() + 10 * 60);
     // set idle to 10 minutes
     if (HTTP_Session2::isExpired()) {
         syslog(LOG_INFO, "Session expired!!");
         HTTP_Session2::destroy();
     }
     if (HTTP_Session2::isIdle()) {
         syslog(LOG_INFO, "Session became idle");
         HTTP_Session2::destroy();
     }
     HTTP_Session2::updateIdle();
     if (HTTP_Session2::isNew()) {
         HTTP_Session2::register('authdata');
         HTTP_Session2::register('current_patient');
         HTTP_Session2::register('default_facility');
         HTTP_Session2::register('ipaddr');
         HTTP_Session2::register('language');
         HTTP_Session2::register('page_history');