]> git.datanom.net - qtadmin.git/blobdiff - lib/utils.inc.php
Fix bug in session handler
[qtadmin.git] / lib / utils.inc.php
index 9e2f6bf0327b5a52b5e7cba3239c3a6d02b95a23..c90b98bfb89b32a22fb6da9303b8dd0c51fff11e 100644 (file)
@@ -75,6 +75,8 @@ class Utils implements Serializable {
     private function startSession() {
         global $CFG;
 
     private function startSession() {
         global $CFG;
 
+        session_unset();
+        session_destroy();
         if (isset($CFG->session_timeout)) {
             $this->timeout = $CFG->session_timeout * 60;
         } else {
         if (isset($CFG->session_timeout)) {
             $this->timeout = $CFG->session_timeout * 60;
         } else {
@@ -94,10 +96,11 @@ class Utils implements Serializable {
     public static function getInstance() {
         global $CFG;
 
     public static function getInstance() {
         global $CFG;
 
+        session_start();
         if (!is_object(self::$_instance)) {
             if (isset($_SESSION['Utils'])) {
                 self::$_instance = unserialize($_SESSION['Utils']);
         if (!is_object(self::$_instance)) {
             if (isset($_SESSION['Utils'])) {
                 self::$_instance = unserialize($_SESSION['Utils']);
-                file_put_contents('/tmp/dump', 'Unserialize called: '.var_export($this, true), FILE_APPEND);
+                file_put_contents('/tmp/dump', 'Unserialize called: '.var_export(self::$_instance, true), FILE_APPEND);
             } else {
                 self::$_instance = new Utils();
             }
             } else {
                 self::$_instance = new Utils();
             }
@@ -112,6 +115,7 @@ class Utils implements Serializable {
             session_destroy();
             self::$_instance->user = null;
             self::$_instance->is_admin = false;
             session_destroy();
             self::$_instance->user = null;
             self::$_instance->is_admin = false;
+            $_SESSION['Utils'] = serialize(self::$_instance);
         } else {
             $_SESSION['LAST_ACTIVITY'] = $time;
         }
         } else {
             $_SESSION['LAST_ACTIVITY'] = $time;
         }
@@ -185,6 +189,8 @@ class Utils implements Serializable {
             $this->loginStatus = 'Connect to LDAP server failed';
         }
 
             $this->loginStatus = 'Connect to LDAP server failed';
         }
 
+        $_SESSION['Utils'] = serialize($this);
+
         return $result;
     }
 
         return $result;
     }
 
@@ -215,6 +221,9 @@ class Utils implements Serializable {
             echo 'R_TIME: '.date('c', $_SERVER['REQUEST_TIME']).' L_ACT: '.date('c', $_SESSION['LAST_ACTIVITY']);
             exit;
         }
             echo 'R_TIME: '.date('c', $_SERVER['REQUEST_TIME']).' L_ACT: '.date('c', $_SESSION['LAST_ACTIVITY']);
             exit;
         }
+
+        $_SESSION['Utils'] = serialize($this);
+
         return $loggedIn;
     }
 
         return $loggedIn;
     }
 
@@ -243,6 +252,8 @@ class Utils implements Serializable {
         $this->header = str_replace('__TITLE__', $heading, $this->header);
         $this->header = str_replace('__ROOT__', $CFG->wwwroot, $this->header);
         $this->header = str_replace('__TIMEOUT__', $timeout, $this->header);
         $this->header = str_replace('__TITLE__', $heading, $this->header);
         $this->header = str_replace('__ROOT__', $CFG->wwwroot, $this->header);
         $this->header = str_replace('__TIMEOUT__', $timeout, $this->header);
+
+        $_SESSION['Utils'] = serialize($this);
     }
 
     public function convertContent($code) {
     }
 
     public function convertContent($code) {
This page took 0.053243 seconds and 5 git commands to generate.