]> git.datanom.net - qtadmin.git/commitdiff
finish log method
authorMichael Rasmussen <mir@datanom.net>
Sat, 6 Jun 2015 13:29:31 +0000 (15:29 +0200)
committerMichael Rasmussen <mir@datanom.net>
Sat, 6 Jun 2015 13:29:31 +0000 (15:29 +0200)
lib/session_handler.inc.php [new file with mode: 0644]

diff --git a/lib/session_handler.inc.php b/lib/session_handler.inc.php
new file mode 100644 (file)
index 0000000..bd3a771
--- /dev/null
@@ -0,0 +1,58 @@
+<?php
+class FileSessionHandler {
+    private $savePath;
+
+    function open($savePath, $sessionName) {
+        $this->savePath = $savePath;
+        if (!is_dir($this->savePath)) {
+            mkdir($this->savePath, 0777);
+        }
+
+        return true;
+    }
+
+    function close() {
+        return true;
+    }
+
+    function read($id) {
+        return (string)@file_get_contents("$this->savePath/qt_sess_$id");
+    }
+
+    function write($id, $data) {
+        return file_put_contents("$this->savePath/qt_sess_$id", $data) === false ? false : true;
+    }
+
+    function destroy($id) {
+        $file = "$this->savePath/qt_sess_$id";
+        if (file_exists($file)) {
+            unlink($file);
+        }
+
+        return true;
+    }
+
+    function gc($maxlifetime) {
+        foreach (glob("$this->savePath/qt_sess_*") as $file) {
+            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
+                unlink($file);
+            }
+        }
+
+        return true;
+    }
+}
+
+$handler = new FileSessionHandler();
+session_set_save_handler(
+    array($handler, 'open'),
+    array($handler, 'close'),
+    array($handler, 'read'),
+    array($handler, 'write'),
+    array($handler, 'destroy'),
+    array($handler, 'gc')
+);
+
+// the following prevents unexpected effects when using objects as save handlers
+register_shutdown_function('session_write_close');
+?>
This page took 0.031906 seconds and 5 git commands to generate.