diff options
Diffstat (limited to 'include/sessions.php')
-rw-r--r-- | include/sessions.php | 49 |
1 files changed, 24 insertions, 25 deletions
diff --git a/include/sessions.php b/include/sessions.php index d7dde782e..d4f21d8cd 100644 --- a/include/sessions.php +++ b/include/sessions.php @@ -1,31 +1,29 @@ <?php - // Original from http://www.daniweb.com/code/snippet43.html + namespace Sessions; - require_once "config.php"; - require_once "classes/db.php"; require_once "autoload.php"; + require_once "functions.php"; require_once "errorhandler.php"; - require_once "lib/accept-to-gettext.php"; require_once "lib/gettext/gettext.inc.php"; - $session_expire = min(2147483647 - time() - 1, max(SESSION_COOKIE_LIFETIME, 86400)); - $session_name = (!defined('TTRSS_SESSION_NAME')) ? "ttrss_sid" : TTRSS_SESSION_NAME; + $session_expire = min(2147483647 - time() - 1, max(\Config::get(\Config::SESSION_COOKIE_LIFETIME), 86400)); + $session_name = \Config::get(\Config::SESSION_NAME); if (is_server_https()) { - ini_set("session.cookie_secure", true); + ini_set("session.cookie_secure", "true"); } - ini_set("session.gc_probability", 75); + ini_set("session.gc_probability", "75"); ini_set("session.name", $session_name); - ini_set("session.use_only_cookies", true); + ini_set("session.use_only_cookies", "true"); ini_set("session.gc_maxlifetime", $session_expire); - ini_set("session.cookie_lifetime", 0); + ini_set("session.cookie_lifetime", "0"); function session_get_schema_version() { global $schema_version; if (!$schema_version) { - $row = Db::pdo()->query("SELECT schema_version FROM ttrss_version")->fetch(); + $row = \Db::pdo()->query("SELECT schema_version FROM ttrss_version")->fetch(); $version = $row["schema_version"]; @@ -37,18 +35,18 @@ } function validate_session() { - if (SINGLE_USER_MODE) return true; + if (\Config::get(\Config::SINGLE_USER_MODE)) return true; if (isset($_SESSION["ref_schema_version"]) && $_SESSION["ref_schema_version"] != session_get_schema_version()) { $_SESSION["login_error_msg"] = __("Session failed to validate (schema version changed)"); return false; } - $pdo = Db::pdo(); + $pdo = \Db::pdo(); if (!empty($_SESSION["uid"])) { - if (!defined('_SESSION_SKIP_UA_CHECKS') && $_SESSION["user_agent"] != sha1($_SERVER['HTTP_USER_AGENT'])) { + if ($_SESSION["user_agent"] != sha1($_SERVER['HTTP_USER_AGENT'])) { $_SESSION["login_error_msg"] = __("Session failed to validate (UA changed)."); return false; } @@ -87,7 +85,7 @@ function ttrss_read ($id){ global $session_expire; - $sth = Db::pdo()->prepare("SELECT data FROM ttrss_sessions WHERE id=?"); + $sth = \Db::pdo()->prepare("SELECT data FROM ttrss_sessions WHERE id=?"); $sth->execute([$id]); if ($row = $sth->fetch()) { @@ -96,7 +94,7 @@ } else { $expire = time() + $session_expire; - $sth = Db::pdo()->prepare("INSERT INTO ttrss_sessions (id, data, expire) + $sth = \Db::pdo()->prepare("INSERT INTO ttrss_sessions (id, data, expire) VALUES (?, '', ?)"); $sth->execute([$id, $expire]); @@ -112,14 +110,14 @@ $data = base64_encode($data); $expire = time() + $session_expire; - $sth = Db::pdo()->prepare("SELECT id FROM ttrss_sessions WHERE id=?"); + $sth = \Db::pdo()->prepare("SELECT id FROM ttrss_sessions WHERE id=?"); $sth->execute([$id]); if ($row = $sth->fetch()) { - $sth = Db::pdo()->prepare("UPDATE ttrss_sessions SET data=?, expire=? WHERE id=?"); + $sth = \Db::pdo()->prepare("UPDATE ttrss_sessions SET data=?, expire=? WHERE id=?"); $sth->execute([$data, $expire, $id]); } else { - $sth = Db::pdo()->prepare("INSERT INTO ttrss_sessions (id, data, expire) + $sth = \Db::pdo()->prepare("INSERT INTO ttrss_sessions (id, data, expire) VALUES (?, ?, ?)"); $sth->execute([$id, $data, $expire]); } @@ -132,22 +130,23 @@ } function ttrss_destroy($id) { - $sth = Db::pdo()->prepare("DELETE FROM ttrss_sessions WHERE id = ?"); + $sth = \Db::pdo()->prepare("DELETE FROM ttrss_sessions WHERE id = ?"); $sth->execute([$id]); return true; } function ttrss_gc ($expire) { - Db::pdo()->query("DELETE FROM ttrss_sessions WHERE expire < " . time()); + \Db::pdo()->query("DELETE FROM ttrss_sessions WHERE expire < " . time()); return true; } - if (!SINGLE_USER_MODE /* && DB_TYPE == "pgsql" */) { - session_set_save_handler("ttrss_open", - "ttrss_close", "ttrss_read", "ttrss_write", - "ttrss_destroy", "ttrss_gc"); + if (!\Config::get(\Config::SINGLE_USER_MODE)) { + session_set_save_handler('\Sessions\ttrss_open', + '\Sessions\ttrss_close', '\Sessions\ttrss_read', + '\Sessions\ttrss_write', '\Sessions\ttrss_destroy', + '\Sessions\ttrss_gc'); register_shutdown_function('session_write_close'); } |