global $CFG;
$this->server = $_SERVER;
- session_start();
$this->user = null;
$this->is_admin = false;
$this->loginStatus = 'Not logged in';
+ $this->startSession();
+
if (isset($_SESSION['user'])) {
$this->user = $_SESSION['user'];
$this->loginStatus = 'OK';
private function __clone() {}
- public static function getInstance() {
+ private function startSession() {
global $CFG;
- if (!is_object(self::$_instance)) {
- self::$_instance = new Utils();
- }
- // Session timeout handler
- if ('' == session_id())
- session_start();
if (isset($CFG->session_timeout)) {
$timeout = $CFG->session_timeout * 60;
} else {
ini_set('session.gc_maxlifetime', $timeout);
if (ini_get('session.cookie_lifetime') != $timeout)
ini_set('session.cookie_lifetime', $timeout);
+
+ session_start();
+
$time = $_SERVER['REQUEST_TIME'];
if (isset($_SESSION['LAST_ACTIVITY']) && ($time - $_SESSION['LAST_ACTIVITY']) >= $timeout) {
session_unset();
session_destroy();
- session_start();
self::$_instance->user = null;
self::$_instance->is_admin = false;
+ } else {
+ $_SESSION['LAST_ACTIVITY'] = $time;
+ }
+ }
+
+ public static function getInstance() {
+ if (!is_object(self::$_instance)) {
+ self::$_instance = new Utils();
}
- $_SESSION['LAST_ACTIVITY'] = $time;
return self::$_instance;
}