db = Db::get(); session_set_save_handler("SessionHandler::open", "SessionHandler::close", "SessionHandler::read", "SessionHandler::write", "SessionHandler::destroy", "SessionHandler::gc"); } public static function open($save_path, $name) { } public static function read ($id){ $query = "SELECT data FROM ttrss_sessions WHERE id='$id'"; $res = $this->db->query("SELECT data FROM ttrss_sessions WHERE id='$id'"); if ($this->db->num_rows($res) != 1) { "INSERT INTO ttrss_sessions (id, data, expire) VALUES ('$id', '$data', '$expire')"; } else { $data = $this->db->fetch_result($res, 0, "data"); return base64_decode($data); } } public static function write($id, $data) { if (! $data) { return false; } $data = $this->db->escape_string( base64_encode($data), false); $expire = time() + max(SESSION_COOKIE_LIFETIME, 86400); $query = "UPDATE ttrss_sessions SET data='$data', expire = '$expire' WHERE id='$id'"; $this->db->query( $query); return true; } public static function close () { } public static function destroy($session_id) { $this->db->query("DELETE FROM ttrss_sessions WHERE id = '$session_id'"); return true; } public static function gc($maxLifeTime) { $this->db->query("DELETE FROM ttrss_sessions WHERE expire < " time() - $maxLifeTime); return true; } } ?>