-<?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\DBM;
+use SessionHandlerInterface;
+use dba;
+
+require_once 'boot.php';
+require_once 'include/dba.php';
+require_once 'include/text.php';
+
+/**
+ * SessionHandler using database
+ *
+ * @author Hypolite Petovan <mrpetovan@gmail.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 (DBM::is_result($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;
+ }
+}