X-Git-Url: http://git.datanom.net/qtadmin.git/blobdiff_plain/bb06f1727e40a566d487b1b5ede2794d292b27ad..7d9c7fe274945ed75eec4395b6ddc72499ba2c93:/lib/utils.inc.php diff --git a/lib/utils.inc.php b/lib/utils.inc.php index 6be511f..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 = ' @@ -18,11 +19,12 @@ class Utils { var timeout = __TIMEOUT__; + __TITLE__ '; private $footer = ''; + title="Goto QtAdmin homepage">QtAdmin. © 2015 by Michael Rasmussen

'; private $heading = '

Session timeout:

__TITLE__

'; @@ -30,12 +32,13 @@ class Utils { 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'; @@ -56,34 +59,42 @@ class Utils { private function __clone() {} + private function startSession() { + global $CFG; + + if (isset($CFG->session_timeout)) { + $this->timeout = $CFG->session_timeout * 60; + } else { + $this->timeout = 20 * 60; + } + + 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(); } - // Session timeout handler - if ('' == session_id()) - session_start(); - if (isset($CFG->session_timeout)) { - $timeout = $CFG->session_timeout * 60; - } else { - $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); $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(); - session_start(); self::$_instance->user = null; self::$_instance->is_admin = false; + } else { + $_SESSION['LAST_ACTIVITY'] = $time; } - $_SESSION['LAST_ACTIVITY'] = $time; return self::$_instance; }