示例#1
0
 public static final function sessionInit($reset = false)
 {
     if (self::$_sessionInitFlag && !$reset) {
         return false;
     }
     self::$_sessionInitFlag = true;
     if (session_id()) {
         @session_write_close();
     }
     if (!defined('IEM_NO_SESSION') && !IEM_CLI_MODE) {
         session_name(IEM::SESSION_NAME);
         ini_set('session.use_cookies', 1);
         ini_set('session.gc_probability', 1);
         ini_set('session.gc_divisor', 100);
         ini_set('session.gc_maxlifetime', 3600);
         @session_start();
     }
     if (isset($_SESSION)) {
         self::$_sessionReference =& $_SESSION;
     } else {
         self::$_sessionReference = array();
     }
     if (!array_key_exists('initialized', self::$_sessionReference)) {
         self::$_sessionReference = array('initialized' => true, 'storage' => array(), 'user' => array());
     }
     return true;
 }
 /**
  * Initialize Session
  * @param $reset Flag to indicate whether or not the procedure can reset previously initialized session
  * @return Boolean Returns TRUE if successful, FALSE otherwise
  *
  * @todo session variable expiry
  * @todo special storage area to hold current user information
  */
 public static final function sessionInit($reset = false)
 {
     // ---- Make sure that the session is not being accidentally initialized more than once
     if (self::$_sessionInitFlag && !$reset) {
         return false;
     }
     self::$_sessionInitFlag = true;
     // -----
     // Closes current session if they have session.auto_start set to on
     if (session_id()) {
         @session_write_close();
     }
     // if IEM_NO_SESSION or PHP running in CLI mode, do not start session
     if (!defined('IEM_NO_SESSION') && !IEM_CLI_MODE) {
         session_name(IEM::SESSION_NAME);
         ini_set('session.use_cookies', 1);
         ini_set('session.gc_probability', 1);
         ini_set('session.gc_divisor', 100);
         ini_set('session.gc_maxlifetime', 3600);
         @session_start();
     }
     // Make sure the session strucutre has been initialized
     if (isset($_SESSION)) {
         self::$_sessionReference =& $_SESSION;
         // If $_SESSION is not set, the script is probably invoked using CLI,
         // therefore we do not need to presists session variable for subsequent requests
         // which means a simple array will do to emulate $_SESSION
     } else {
         self::$_sessionReference = array();
     }
     // Structure check
     if (!array_key_exists('initialized', self::$_sessionReference)) {
         self::$_sessionReference = array('initialized' => true, 'storage' => array(), 'user' => array());
     }
     return true;
 }