18ob_start(
'ob_gzhandler');
21 || (
int)(
$_SERVER[
'SERVER_PORT'] ?? 0) === 443;
23if (session_status() !== PHP_SESSION_ACTIVE) {
24 ini_set(
'session.use_strict_mode',
'1');
25 ini_set(
'session.use_only_cookies',
'1');
26 ini_set(
'session.use_trans_sid',
'0');
27 $sessionScript = str_replace(
'\\',
'/', (
string)(
$_SERVER[
'SCRIPT_NAME'] ??
'/index.php'));
28 $sessionPath = rtrim(str_replace(
'\\',
'/', dirname($sessionScript)),
'/');
29 $sessionPath = ($sessionPath ===
'' || $sessionPath ===
'.') ?
'/' : $sessionPath .
'/';
30 if (preg_match(
'#^/[A-Za-z0-9._~!$&\'()*+,;=:@%/-]*/$#', $sessionPath) !== 1) {
33 $sessionHost = strtolower((
string)(
$_SERVER[
'HTTP_HOST'] ??
$_SERVER[
'SERVER_NAME'] ??
'localhost'));
34 $sessionHost = preg_replace(
'/:\d+$/',
'', $sessionHost) ?:
'localhost';
37 . strtoupper(substr(hash(
'sha256', $sessionHost .
'|' . $sessionPath), 0, 12))
39 session_set_cookie_params(array(
41 'path' => $sessionPath,
50if (!defined(
'dbxSystem')) {
51 define(
'dbxSystem',
'dbxWebApp');
53if (!defined(
'dbxRunAsAdmin')) {
54 define(
'dbxRunAsAdmin', 0);
76error_reporting(E_ALL & ~E_DEPRECATED & ~E_USER_DEPRECATED & ~E_NOTICE);
77date_default_timezone_set(
'Europe/Berlin');
79ini_set(
'max_execution_time',
'600');
80ini_set(
'display_errors',
'0');
81ini_set(
'log_errors',
'1');
87ini_set(
'error_log',
$errorLogDir . DIRECTORY_SEPARATOR .
'dbxError.log');
94set_error_handler(
function ($errno, $errstr, $errfile, $errline) {
95 if (!(error_reporting() & $errno)) {
99 dbx()->write_php_error_log(
108set_exception_handler(
function ($exception) {
109 dbx()->write_php_error_log(
110 get_class($exception),
111 $exception->getMessage(),
112 $exception->getFile(),
113 $exception->getLine()
115 if (!headers_sent()) {
116 http_response_code(500);
120register_shutdown_function(
function () {
121 $error = error_get_last();
126 $fatalTypes = array(E_ERROR, E_PARSE, E_CORE_ERROR, E_COMPILE_ERROR, E_RECOVERABLE_ERROR);
127 if (!in_array($error[
'type'], $fatalTypes,
true)) {
131 dbx()->write_php_error_log(
133 (
string)($error[
'message'] ??
''),
134 (
string)($error[
'file'] ??
''),
135 (
int)($error[
'line'] ?? 0)
139if ((
string)(
$_GET[
'dbx_modul'] ??
'') ===
'dbxContent'
140 && (
string)(
$_GET[
'dbx_run1'] ??
'') ===
'media'
141 && (
int)(
$_GET[
'dbx_mid'] ?? 0) > 0) {
142 dbx()->get_include_obj(
'dbxContentMediaResponse',
'dbxContent')->serve_request();
if(session_status() !==PHP_SESSION_ACTIVE) if(!defined('dbxSystem')) if(!defined( 'dbxRunAsAdmin')) dbx_get_base_dir($cutData=0)
Bootstrap-Ausnahme: liefert den portablen Installationspfad, bevor dbxApi geladen werden kann.