예제 #1
0
파일: session.php 프로젝트: phpontrax/trax
 /**
  *  Setup basic session information
  *
  *  Fetch the contents from a specified element of
  *  {@link http://www.php.net/manual/en/reserved.variables.php#reserved.variables.session $_SESSION}
  *  @uses Trax::$session_name
  *  @uses Trax::$session_lifetime
  *  @uses Trax::$session_maxlifetime_minutes
  */
 function init()
 {
     Trax::$session_name = Trax::$session_name ? Trax::$session_name : self::TRAX_SESSION_NAME;
     Trax::$session_lifetime = Trax::$session_lifetime ? Trax::$session_lifetime : self::TRAX_SESSION_LIFETIME;
     Trax::$session_maxlifetime_minutes = Trax::$session_maxlifetime_minutes ? Trax::$session_maxlifetime_minutes : self::TRAX_SESSION_MAXLIFETIME_MINUTES;
     # set the session default for this app
     ini_set('session.name', Trax::$session_name);
     ini_set('session.use_cookies', 1);
     if (Trax::$session_cookie_domain) {
         ini_set('session.cookie_domain', Trax::$session_cookie_domain);
     }
     ini_set('session.cookie_lifetime', Trax::$session_lifetime);
     ini_set('session.gc_probability', 1);
     ini_set('session.gc_maxlifetime', Trax::$session_maxlifetime_minutes * 60);
     ini_set('session.use_trans_sid', 0);
     ini_set('session.auto_start', 0);
     if (Trax::$session_store == 'active_record_store') {
         ini_set('session.save_handler', 'user');
         include_once "session/active_record_store.php";
         $session_class_name = Trax::$session_class_name ? Trax::$session_class_name : 'ActiveRecordStore';
         $ar_session = new $session_class_name();
         session_set_save_handler(array(&$ar_session, 'open'), array(&$ar_session, 'close'), array(&$ar_session, 'read'), array(&$ar_session, 'write'), array(&$ar_session, 'destroy'), array(&$ar_session, 'gc'));
     } else {
         # file store
         ini_set('session.save_handler', 'files');
         if (Trax::$session_save_path) {
             ini_set('session.save_path', Trax::$session_save_path);
         }
     }
 }