Check if intl and gettext extensins are loaded before using them

This commit is contained in:
2025-04-03 11:15:53 +03:00
parent 39482f0f55
commit f1f991ae6c

View File

@ -69,6 +69,17 @@ if(!isset($_REQUEST['session']) && isset($_COOKIE[COOKIENAME])){
$session = $_COOKIE[COOKIENAME]; $session = $_COOKIE[COOKIENAME];
} }
$session = preg_replace('/[^0-9a-zA-Z]/', '', $session); $session = preg_replace('/[^0-9a-zA-Z]/', '', $session);
if (!extension_loaded('gettext')) {
prepare_stylesheets('fatal_error');
send_headers();
echo '<!DOCTYPE html><html lang="en" dir="ltr"><head>'.meta_html();
echo '<title>Fatal error</title>';
echo "<style>$styles[fatal_error]</style>";
echo '</head><body>';
echo '<h2>Fatal error: The gettext extension of PHP is required, please install it first</h2>';
print_end();
}
load_lang(); load_lang();
check_db(); check_db();
cron(); cron();
@ -4861,7 +4872,7 @@ function load_lang(): void
$locale = LANGUAGES[$_COOKIE['language']]['locale']; $locale = LANGUAGES[$_COOKIE['language']]['locale'];
$language = $_COOKIE['language']; $language = $_COOKIE['language'];
$dir = LANGUAGES[$_COOKIE['language']]['dir']; $dir = LANGUAGES[$_COOKIE['language']]['dir'];
}elseif(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE'])){ }elseif(!empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && extension_loaded('intl')){
$prefLocales = array_reduce( $prefLocales = array_reduce(
explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']), explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']),
function (array $res, string $el) { function (array $res, string $el) {