]> git.mxchange.org Git - friendica.git/blobdiff - src/Core/Session/DatabaseSessionHandler.php
Merge pull request #5773 from MrPetovan/task/rewrite-js-hooks
[friendica.git] / src / Core / Session / DatabaseSessionHandler.php
index d017e2edd23968157caa1e67550b27b591b2e8b5..f249b37fd7a750ca97997062aee0e9382f5adbe3 100644 (file)
@@ -1,95 +1,94 @@
-<?php\r
-\r
-namespace Friendica\Core\Session;\r
-\r
-use Friendica\BaseObject;\r
-use Friendica\Core\Session;\r
-use Friendica\Database\DBM;\r
-use SessionHandlerInterface;\r
-use dba;\r
-\r
-require_once 'boot.php';\r
-require_once 'include/dba.php';\r
-require_once 'include/text.php';\r
-\r
-/**\r
- * SessionHandler using database\r
- *\r
- * @author Hypolite Petovan <mrpetovan@gmail.com>\r
- */\r
-class DatabaseSessionHandler extends BaseObject implements SessionHandlerInterface\r
-{\r
-       public function open($save_path, $session_name)\r
-       {\r
-               return true;\r
-       }\r
-\r
-       public function read($session_id)\r
-       {\r
-               if (!x($session_id)) {\r
-                       return '';\r
-               }\r
-\r
-               $session = dba::selectFirst('session', ['data'], ['sid' => $session_id]);\r
-               if (DBM::is_result($session)) {\r
-                       Session::$exists = true;\r
-                       return $session['data'];\r
-               }\r
-               logger("no data for session $session_id", LOGGER_TRACE);\r
-\r
-               return '';\r
-       }\r
-\r
-       /**\r
-        * @brief Standard PHP session write callback\r
-        *\r
-        * This callback updates the DB-stored session data and/or the expiration depending\r
-        * on the case. Uses the Session::expire global for existing session, 5 minutes\r
-        * for newly created session.\r
-        *\r
-        * @param  string $session_id   Session ID with format: [a-z0-9]{26}\r
-        * @param  string $session_data Serialized session data\r
-        * @return boolean Returns false if parameters are missing, true otherwise\r
-        */\r
-       public function write($session_id, $session_data)\r
-       {\r
-               if (!$session_id) {\r
-                       return false;\r
-               }\r
-\r
-               if (!$session_data) {\r
-                       return true;\r
-               }\r
-\r
-               $expire = time() + Session::$expire;\r
-               $default_expire = time() + 300;\r
-\r
-               if (Session::$exists) {\r
-                       $fields = ['data' => $session_data, 'expire' => $expire];\r
-                       $condition = ["`sid` = ? AND (`data` != ? OR `expire` != ?)", $session_id, $session_data, $expire];\r
-                       dba::update('session', $fields, $condition);\r
-               } else {\r
-                       $fields = ['sid' => $session_id, 'expire' => $default_expire, 'data' => $session_data];\r
-                       dba::insert('session', $fields);\r
-               }\r
-\r
-               return true;\r
-       }\r
-\r
-       public function close()\r
-       {\r
-               return true;\r
-       }\r
-\r
-       public function destroy($id)\r
-       {\r
-               dba::delete('session', ['sid' => $id]);\r
-               return true;\r
-       }\r
-\r
-       public function gc($maxlifetime)\r
-       {\r
-               dba::delete('session', ["`expire` < ?", time()]);\r
-               return true;\r
-       }\r
-}\r
+<?php
+
+namespace Friendica\Core\Session;
+
+use Friendica\BaseObject;
+use Friendica\Core\Session;
+use Friendica\Database\DBA;
+use SessionHandlerInterface;
+
+require_once 'boot.php';
+require_once 'include/dba.php';
+require_once 'include/text.php';
+
+/**
+ * SessionHandler using database
+ *
+ * @author Hypolite Petovan <hypolite@mrpetovan.com>
+ */
+class DatabaseSessionHandler extends BaseObject implements SessionHandlerInterface
+{
+       public function open($save_path, $session_name)
+       {
+               return true;
+       }
+
+       public function read($session_id)
+       {
+               if (!x($session_id)) {
+                       return '';
+               }
+
+               $session = DBA::selectFirst('session', ['data'], ['sid' => $session_id]);
+               if (DBA::isResult($session)) {
+                       Session::$exists = true;
+                       return $session['data'];
+               }
+               logger("no data for session $session_id", LOGGER_TRACE);
+
+               return '';
+       }
+
+       /**
+        * @brief Standard PHP session write callback
+        *
+        * This callback updates the DB-stored session data and/or the expiration depending
+        * on the case. Uses the Session::expire global for existing session, 5 minutes
+        * for newly created session.
+        *
+        * @param  string $session_id   Session ID with format: [a-z0-9]{26}
+        * @param  string $session_data Serialized session data
+        * @return boolean Returns false if parameters are missing, true otherwise
+        */
+       public function write($session_id, $session_data)
+       {
+               if (!$session_id) {
+                       return false;
+               }
+
+               if (!$session_data) {
+                       return true;
+               }
+
+               $expire = time() + Session::$expire;
+               $default_expire = time() + 300;
+
+               if (Session::$exists) {
+                       $fields = ['data' => $session_data, 'expire' => $expire];
+                       $condition = ["`sid` = ? AND (`data` != ? OR `expire` != ?)", $session_id, $session_data, $expire];
+                       DBA::update('session', $fields, $condition);
+               } else {
+                       $fields = ['sid' => $session_id, 'expire' => $default_expire, 'data' => $session_data];
+                       DBA::insert('session', $fields);
+               }
+
+               return true;
+       }
+
+       public function close()
+       {
+               return true;
+       }
+
+       public function destroy($id)
+       {
+               DBA::delete('session', ['sid' => $id]);
+               return true;
+       }
+
+       public function gc($maxlifetime)
+       {
+               DBA::delete('session', ["`expire` < ?", time()]);
+               return true;
+       }
+}