From 7d9c7fe274945ed75eec4395b6ddc72499ba2c93 Mon Sep 17 00:00:00 2001 From: Michael Rasmussen Date: Thu, 4 Jun 2015 18:38:25 +0200 Subject: [PATCH] Fix bug in session handler --- lib/utils.inc.php | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/lib/utils.inc.php b/lib/utils.inc.php index 8aa38e0..7009966 100644 --- a/lib/utils.inc.php +++ b/lib/utils.inc.php @@ -9,6 +9,7 @@ class Utils { private $user; private $is_admin; private $loginStatus; + private $timeout; private $header = ' @@ -62,20 +63,31 @@ class Utils { global $CFG; if (isset($CFG->session_timeout)) { - $timeout = $CFG->session_timeout * 60; + $this->timeout = $CFG->session_timeout * 60; } else { - $timeout = 20 * 60; + $this->timeout = 20 * 60; } - if (ini_get('session.gc_maxlifetime') != $timeout) - ini_set('session.gc_maxlifetime', $timeout); - if (ini_get('session.cookie_lifetime') != $timeout) - ini_set('session.cookie_lifetime', $timeout); + if (ini_get('session.gc_maxlifetime') != $this->timeout) + ini_set('session.gc_maxlifetime', $this->timeout); + if (ini_get('session.cookie_lifetime') != $this->timeout) + ini_set('session.cookie_lifetime', $this->timeout); session_start(); + //echo ini_get('session.gc_maxlifetime').':'.ini_get('session.cookie_lifetime'); + } + + public static function getInstance() { + global $CFG; + + if (!is_object(self::$_instance)) { + self::$_instance = new Utils(); + } + $time = $_SERVER['REQUEST_TIME']; - if (isset($_SESSION['LAST_ACTIVITY']) && ($time - $_SESSION['LAST_ACTIVITY']) >= $timeout) { + if (isset($_SESSION['LAST_ACTIVITY']) && + ($time - $_SESSION['LAST_ACTIVITY']) >= self::$_instance->timeout) { session_unset(); session_destroy(); self::$_instance->user = null; @@ -83,12 +95,6 @@ class Utils { } else { $_SESSION['LAST_ACTIVITY'] = $time; } - } - - public static function getInstance() { - if (!is_object(self::$_instance)) { - self::$_instance = new Utils(); - } return self::$_instance; } -- 2.39.2