summaryrefslogtreecommitdiff
path: root/include/sessions.php
diff options
context:
space:
mode:
Diffstat (limited to 'include/sessions.php')
-rw-r--r--include/sessions.php49
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');
}