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; }