]> git.datanom.net - qtadmin.git/blobdiff - lib/session_handler.inc.php
Add change row per page
[qtadmin.git] / lib / session_handler.inc.php
index bd3a7710da0c08f40a2594741d753c58867e902b..4bad52e103cc948b9d3f1ba34ffe7cd143468cc5 100644 (file)
@@ -1,8 +1,72 @@
 <?php
 <?php
+/* vim: set ts=4 tw=4 sw=4 noet: */
+require_once $CFG->root .'config.php';
+
 class FileSessionHandler {
     private $savePath;
 class FileSessionHandler {
     private $savePath;
+    private $log_level;
+    private $log_method;
+
+    public function __construct() {
+        global $CFG;
+
+        if (isset($CFG->log_level)) {
+            $this->log_level = $CFG->log_level;
+        } else {
+            $this->log_level = 1;
+        }
+
+        if (isset($CFG->log_method)) {
+            $this->log_method = $CFG->log_method;
+        } else {
+            $this->log_level = 'syslog';
+        }
+
+        $this->log("Init FileSessionHandler", 4);
+
+    }
 
 
-    function open($savePath, $sessionName) {
+    private function log($message, $level = 1) {
+        global $CFG;
+
+        if ($level > $this->log_level)
+            return;
+
+        $time = date('c');
+
+        $priority = LOG_INFO;
+        switch ($level) {
+            case 1: $priority = LOG_ERR; break;
+            case 2: $priority = LOG_WARNING; break;
+            case 3: $priority = LOG_INFO; break;
+            case 4: $priority = LOG_DEBUG; break;
+        }
+
+        switch ($this->log_method) {
+            case 'file':
+                if (isset($CFG->log_file)) {
+                    if ($CFG->log_file[0] == '/') {
+                        $file = $CFG->log_file;
+                    } else {
+                        $file = $CFG->root.$CFG->log_file;
+                    }
+                } else {
+                    $file = $CFG->root.'qtadmin.log';
+                }
+                file_put_contents($file, "[$time]: $message\n", FILE_APPEND | LOCK_EX);
+                chmod($file, 0600);
+                break;
+            case 'stderr':
+                file_put_contents('php://stderr', "[$time]: $message\n");
+                break;
+            case 'syslog':
+                syslog($priority, $message);
+                break;
+        }
+    }
+
+    public function open($savePath, $sessionName) {
+        $this->log("FileSessionHandler->open", 4);
         $this->savePath = $savePath;
         if (!is_dir($this->savePath)) {
             mkdir($this->savePath, 0777);
         $this->savePath = $savePath;
         if (!is_dir($this->savePath)) {
             mkdir($this->savePath, 0777);
@@ -12,6 +76,7 @@ class FileSessionHandler {
     }
 
     function close() {
     }
 
     function close() {
+        $this->log("FileSessionHandler->close", 4);
         return true;
     }
 
         return true;
     }
 
@@ -20,10 +85,15 @@ class FileSessionHandler {
     }
 
     function write($id, $data) {
     }
 
     function write($id, $data) {
-        return file_put_contents("$this->savePath/qt_sess_$id", $data) === false ? false : true;
+        $this->log("FileSessionHandler->write : $id->$data", 4);
+        $result = file_put_contents("$this->savePath/qt_sess_$id", $data);
+        chmod("$this->savePath/qt_sess_$id", 0600);
+
+        return ($result === false) ? false : true;
     }
 
     function destroy($id) {
     }
 
     function destroy($id) {
+        $this->log("FileSessionHandler->destroy : $id", 4);
         $file = "$this->savePath/qt_sess_$id";
         if (file_exists($file)) {
             unlink($file);
         $file = "$this->savePath/qt_sess_$id";
         if (file_exists($file)) {
             unlink($file);
@@ -33,6 +103,7 @@ class FileSessionHandler {
     }
 
     function gc($maxlifetime) {
     }
 
     function gc($maxlifetime) {
+        $this->log("FileSessionHandler->gc : $maxlifetime", 4);
         foreach (glob("$this->savePath/qt_sess_*") as $file) {
             if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                 unlink($file);
         foreach (glob("$this->savePath/qt_sess_*") as $file) {
             if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
                 unlink($file);
This page took 0.053122 seconds and 5 git commands to generate.