diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/errorhandler.php | 8 | ||||
-rw-r--r-- | include/functions.php | 9 | ||||
-rwxr-xr-x | include/sanity_check.php | 12 |
3 files changed, 22 insertions, 7 deletions
diff --git a/include/errorhandler.php b/include/errorhandler.php index 95c9edc69..188c8c5ce 100644 --- a/include/errorhandler.php +++ b/include/errorhandler.php @@ -31,7 +31,13 @@ function format_backtrace($trace) { return $rv; } -function ttrss_error_handler($errno, $errstr, $file, $line, $context) { +function ttrss_error_handler($errno, $errstr, $file, $line) { + if (version_compare(PHP_VERSION, '8.0.0', '<')) { + if (error_reporting() == 0 || !$errno) return false; + } else { + if (!(error_reporting() & $errno)) return false; + } + if (error_reporting() == 0 || !$errno) return false; $file = substr(str_replace(dirname(dirname(__FILE__)), "", $file), 1); diff --git a/include/functions.php b/include/functions.php index ceb7fbd9e..a70b4ac44 100644 --- a/include/functions.php +++ b/include/functions.php @@ -18,7 +18,10 @@ $fetch_effective_url = false; $fetch_curl_used = false; - libxml_disable_entity_loader(true); + if (version_compare(PHP_VERSION, '8.0.0', '<')) { + libxml_disable_entity_loader(true); + } + libxml_use_internal_errors(true); // separate test because this is included before sanity checks @@ -327,7 +330,7 @@ function sanity_check() { require_once 'errors.php'; - global $ERRORS; + $ERRORS = get_error_types(); $error_code = 0; $schema_version = get_schema_version(true); @@ -540,7 +543,7 @@ */ function error_json($code) { require_once "errors.php"; - global $ERRORS; + $ERRORS = get_error_types(); @$message = $ERRORS[$code]; diff --git a/include/sanity_check.php b/include/sanity_check.php index 86dc7a5f0..e6c0e5d4b 100755 --- a/include/sanity_check.php +++ b/include/sanity_check.php @@ -21,6 +21,8 @@ } function make_self_url_path() { + if (!isset($_SERVER["HTTP_HOST"])) return false; + $proto = is_server_https() ? 'https' : 'http'; $url_path = $proto . '://' . $_SERVER["HTTP_HOST"] . parse_url($_SERVER["REQUEST_URI"], PHP_URL_PATH); @@ -115,14 +117,18 @@ } $ref_self_url_path = make_self_url_path(); - $ref_self_url_path = preg_replace("/\w+\.php$/", "", $ref_self_url_path); + + if ($ref_self_url_path) { + $ref_self_url_path = preg_replace("/\w+\.php$/", "", $ref_self_url_path); + } if (SELF_URL_PATH == "http://example.org/tt-rss/") { + $hint = $ref_self_url_path ? "(possible value: <b>$ref_self_url_path</b>)" : ""; array_push($errors, - "Please set SELF_URL_PATH to the correct value for your server (possible value: <b>$ref_self_url_path</b>)"); + "Please set SELF_URL_PATH to the correct value for your server $hint"); } - if (isset($_SERVER["HTTP_HOST"]) && + if ($ref_self_url_path && (!defined('_SKIP_SELF_URL_PATH_CHECKS') || !_SKIP_SELF_URL_PATH_CHECKS) && SELF_URL_PATH != $ref_self_url_path && SELF_URL_PATH != mb_substr($ref_self_url_path, 0, mb_strlen($ref_self_url_path)-1)) { array_push($errors, |