Files
FreshRSS/p/i/index.php
Martin 934f032c19 Better error message on failure (#3407)
* bump default logout from 30 to 365 days

* * Change cookie duration to constant
* Change cookie duration to three months

* use class

* use 90 days (otherwise login form says 91.3 days)

* change class

* also this works now

* Better error message

* inconsistent dot with the other message

* Better error message

* add errorMessage()

* fix style

* html escape the error title

* also html escape error message

* remove spaces before parentheses

* rework the error message

* Minz-friendly

* Update message

Do not advise running this script as wrong user

* Update lib/lib_rss.php

Co-authored-by: Martin <spleefer90@gmail.com>

Co-authored-by: Martin Rys <martin@rys.pw>
Co-authored-by: Frans de Jonge <fransdejonge@gmail.com>
Co-authored-by: Alexandre Alapetite <alexandre@alapetite.fr>
2021-02-05 21:59:21 +01:00

84 lines
3.2 KiB
PHP
Executable File

<?php
// > Error: FreshRSS requires PHP, which does not seem to be installed or configured correctly! <!--
# ***** BEGIN LICENSE BLOCK *****
# MINZ - A free PHP framework
# Copyright (C) 2011 Marien Fressinaud
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as
# published by the Free Software Foundation, either version 3 of the
# License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Affero General Public License for more details.
#
# You should have received a copy of the GNU Affero General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
# ***** END LICENSE BLOCK *****
require(__DIR__ . '/../../constants.php');
require(LIB_PATH . '/lib_rss.php'); //Includes class autoloader
if (file_exists(DATA_PATH . '/do-install.txt')) {
require(APP_PATH . '/install.php');
} else {
session_cache_limiter('');
if (!file_exists(DATA_PATH . '/no-cache.txt')) {
require(LIB_PATH . '/http-conditional.php');
$currentUser = Minz_Session::param('currentUser', '');
$dateLastModification = $currentUser === '' ? time() : max(
@filemtime(join_path(USERS_PATH, $currentUser, 'log.txt')),
@filemtime(join_path(DATA_PATH, 'config.php'))
);
if (httpConditional($dateLastModification, 0, 0, false, PHP_COMPRESSION, true)) {
Minz_Session::init('FreshRSS');
Minz_Session::_param('keepAlive', 1); //To prevent the PHP session from expiring
exit(); //No need to send anything
}
}
$migrations_path = APP_PATH . '/migrations';
$applied_migrations_path = DATA_PATH . '/applied_migrations.txt';
// The next line is temporary: the migrate method expects the applied_migrations.txt
// file to exist. This is because the install script creates this file, so
// if it is missing, it means the application is not installed. But we
// should also take care of applications installed before the new
// migrations system (<=1.16). Indeed, they are installed but the migrations
// version file doesn't exist. So for now (1.17), we continue to check if the
// application is installed with the do-install.txt file: if yes, we create
// the version file. Starting from version 1.18, all the installed systems
// will have the file and so we will be able to remove this temporary line
// and stop using the do-install.txt file to check if FRSS is already
// installed.
touch($applied_migrations_path);
$error = false;
try {
// Apply the migrations if any
$result = Minz_Migrator::execute($migrations_path, $applied_migrations_path);
if ($result === true) {
FreshRSS_Context::initSystem();
$front_controller = new FreshRSS();
$front_controller->init();
Minz_Session::_param('keepAlive', 1); //To prevent the PHP session from expiring
$front_controller->run();
} else {
$error = $result;
}
} catch (Exception $e) {
$error = $e->getMessage();
}
if ($error) {
Minz_Log::error($error);
errorMessage('Fatal error');
syslog(LOG_INFO, 'FreshRSS Fatal error! ' . $error);
}
}