summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Dolgov <[email protected]>2021-02-25 15:28:27 +0300
committerAndrew Dolgov <[email protected]>2021-02-25 15:28:27 +0300
commitefd196839a20ae7e38be227c62b9c134ddec4bea (patch)
treece669c677cd793165af87e71e49adade319baa3b
parent1464abbbfc73171bd65e13d3b6e07511f5663815 (diff)
stop caching schema version entirely, fix some session_start() related warnings
-rw-r--r--api/index.php2
-rwxr-xr-xclasses/api.php8
-rwxr-xr-xclasses/handler/public.php3
-rw-r--r--classes/userhelper.php4
-rw-r--r--include/functions.php20
-rw-r--r--include/sessions.php3
6 files changed, 20 insertions, 20 deletions
diff --git a/api/index.php b/api/index.php
index d85a1103c..430082f16 100644
--- a/api/index.php
+++ b/api/index.php
@@ -23,7 +23,7 @@
if (!empty($_REQUEST["sid"])) {
session_id($_REQUEST["sid"]);
- @session_start();
+ session_start();
}
startup_gettext();
diff --git a/classes/api.php b/classes/api.php
index 7ca8ec8ba..3c6795327 100755
--- a/classes/api.php
+++ b/classes/api.php
@@ -59,8 +59,12 @@ class API extends Handler {
}
function login() {
- @session_destroy();
- @session_start();
+
+ if (session_status() == PHP_SESSION_ACTIVE) {
+ session_destroy();
+ }
+
+ session_start();
$login = clean($_REQUEST["user"]);
$password = clean($_REQUEST["password"]);
diff --git a/classes/handler/public.php b/classes/handler/public.php
index cc5d35079..bf0160db6 100755
--- a/classes/handler/public.php
+++ b/classes/handler/public.php
@@ -390,7 +390,8 @@ class Handler_Public extends Handler {
} else {
// start an empty session to deliver login error message
- @session_start();
+ if (session_status() != PHP_SESSION_ACTIVE)
+ session_start();
if (!isset($_SESSION["login_error_msg"]))
$_SESSION["login_error_msg"] = __("Incorrect username or password");
diff --git a/classes/userhelper.php b/classes/userhelper.php
index d46d75bf4..8d9d483a8 100644
--- a/classes/userhelper.php
+++ b/classes/userhelper.php
@@ -87,7 +87,9 @@ class UserHelper {
$pdo = Db::pdo();
if (Config::get(Config::SINGLE_USER_MODE)) {
- @session_start();
+ if (session_status() != PHP_SESSION_ACTIVE)
+ session_start();
+
self::authenticate("admin", null);
startup_gettext();
self::load_user_plugins($_SESSION["uid"]);
diff --git a/include/functions.php b/include/functions.php
index 9b5661383..746f8d39e 100644
--- a/include/functions.php
+++ b/include/functions.php
@@ -305,22 +305,14 @@
return $s ? 1 : 0;
}
- // Session caching removed due to causing wrong redirects to upgrade
- // script when get_schema_version() is called on an obsolete session
- // created on a previous schema version.
- function get_schema_version($nocache = false) {
- global $schema_version;
-
+ function get_schema_version() {
$pdo = Db::pdo();
- if (!$schema_version && !$nocache) {
- $row = $pdo->query("SELECT schema_version FROM ttrss_version")->fetch();
- $version = $row["schema_version"];
- $schema_version = $version;
- return $version;
- } else {
- return $schema_version;
- }
+ $row = $pdo->query("SELECT schema_version FROM ttrss_version")->fetch();
+ $version = $row["schema_version"];
+ $schema_version = $version;
+
+ return $version;
}
function file_is_locked($filename) {
diff --git a/include/sessions.php b/include/sessions.php
index d4f21d8cd..23815e182 100644
--- a/include/sessions.php
+++ b/include/sessions.php
@@ -152,6 +152,7 @@
if (!defined('NO_SESSION_AUTOSTART')) {
if (isset($_COOKIE[session_name()])) {
- @session_start();
+ if (session_status() != PHP_SESSION_ACTIVE)
+ session_start();
}
}