getMessage()); http_response_code(500); echo '

Error

An error occured.'; }); register_shutdown_function(function () { // Also catch fatal errors if (($error = error_get_last()) !== NULL) throw new ErrorException($error['message'], 0, $error['type'], $error['file'], $error['line']); }); const ROOT_PATH = __DIR__; define('CONF', parse_ini_file(ROOT_PATH . '/config.ini', true, INI_SCANNER_TYPED)); define('DB', new PDO('sqlite:' . ROOT_PATH . '/db/servnest.db')); DB->exec('PRAGMA foreign_keys = ON;'); DB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); date_default_timezone_set('UTC'); foreach (explode(',', preg_replace('/[A-Z0-9]|q=|;|-|\./', '', $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? '')) as $client_locale) if (in_array($client_locale, array_diff(scandir(ROOT_PATH . '/locales'), ['..', '.']), true)) { $locale = $client_locale; break; } define('LOCALE', $locale ?? 'en'); putenv('LANG=C.UTF-8'); setlocale(LC_MESSAGES, 'C.UTF-8'); bindtextdomain('messages', ROOT_PATH . '/locales/' . LOCALE); header('Content-Language: ' . LOCALE); const SERVICES_USER = ['reg', 'ns', 'ht']; const LF = "\n"; const PLACEHOLDER_DOMAIN = 'example'; // From RFC2606: Reserved Top Level DNS Names > 2. TLDs for Testing, & Documentation Examples const PLACEHOLDER_IPV6 = '2001:db8::3'; // From RFC3849: IPv6 Address Prefix Reserved for Documentation const PLACEHOLDER_IPV4 = '203.0.113.42'; // From RFC5737: IPv4 Address Blocks Reserved for Documentation foreach (array_diff(scandir(ROOT_PATH . '/fn'), ['..', '.']) as $file) require ROOT_PATH . '/fn/' . $file; require ROOT_PATH . '/pages.php';