stop caching schema version entirely, fix some session_start() related warnings

master
Andrew Dolgov 2 years ago
parent 1464abbbfc
commit efd196839a
  1. 2
      api/index.php
  2. 8
      classes/api.php
  3. 3
      classes/handler/public.php
  4. 4
      classes/userhelper.php
  5. 20
      include/functions.php
  6. 3
      include/sessions.php

@ -23,7 +23,7 @@
if (!empty($_REQUEST["sid"])) {
session_id($_REQUEST["sid"]);
@session_start();
session_start();
}
startup_gettext();

@ -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"]);

@ -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");

@ -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"]);

@ -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) {

@ -152,6 +152,7 @@
if (!defined('NO_SESSION_AUTOSTART')) {
if (isset($_COOKIE[session_name()])) {
@session_start();
if (session_status() != PHP_SESSION_ACTIVE)
session_start();
}
}

Loading…
Cancel
Save