diff --git a/include/php_setup.inc b/include/php_setup.inc index 998d7dd5512fe89d6771bac4fb85265142e57406..bfc175d134da5c6d940477d3da8bf2f3557845b8 100644 --- a/include/php_setup.inc +++ b/include/php_setup.inc @@ -45,11 +45,11 @@ function htmlunescape (string $html): string function html_trace ($errstr = "") { static $hideArgs = [ - 'LDAP/init' => [3], - 'userinfo/loginUser' => [1], - 'change_password' => [1], - 'cred_decrypt' => [0,1], - 'LDAP/__construct' => [1], + 'LDAP/init' => [3], + 'userinfo/loginUser' => [1], + 'change_password' => [1], + 'cred_decrypt' => [0, 1], + 'LDAP/__construct' => [1], ]; if (!function_exists('debug_backtrace')) { return ['', '']; @@ -58,24 +58,24 @@ function html_trace ($errstr = "") $loc = ''; if (isset($trace[0]['file'])) { - $loc = ' - '._('File').': '.$trace[0]['file']; + $loc = ' - ' . _('File') . ': ' . $trace[0]['file']; if (isset($trace[0]['line'])) { - $loc .= ' ('._('Line').' '.$trace[0]['line'].')'; + $loc .= ' (' . _('Line') . ' ' . $trace[0]['line'] . ')'; } } - $return_html = '<table width="100%" style="background-color:#402005;color:white;border:2px solid red;border-spacing:0;border-collapse:collapse;">'. - '<tr><td colspan="3">'. - '<h1 style="color:white">'.htmlescape(_('PHP error').' "'.$errstr.'"'.$loc).'</h1>'. - '</td></tr>'; - $return_mailto = rawurlencode('=== Trace ==='); + $return_html = '<table width="100%" style="background-color:#402005;color:white;border:2px solid red;border-spacing:0;border-collapse:collapse;">' . + '<tr><td colspan="3">' . + '<h1 style="color:white">' . htmlescape(_('PHP error') . ' "' . $errstr . '"' . $loc) . '</h1>' . + '</td></tr>'; + $return_mailto = rawurlencode('=== Trace ==='); /* Generate trace history */ for ($index = 1, $c = count($trace); $index < $c; $index++) { $ct = $trace[$index]; $loc = ''; $func = ''; if (isset($ct['class'])) { - $loc .= _('class').' '.$ct['class']; + $loc .= _('class') . ' ' . $ct['class']; $func .= $ct['class']; if (isset($ct['function'])) { $loc .= ' / '; @@ -83,7 +83,7 @@ function html_trace ($errstr = "") } } if (isset($ct['function'])) { - $loc .= _('function').' '.$ct['function']; + $loc .= _('function') . ' ' . $ct['function']; $func .= $ct['function']; } if (isset($ct['type'])) { @@ -110,8 +110,7 @@ function html_trace ($errstr = "") } else { $hideArgsIndexes = []; } - $f = function ($index, $arg) use (&$f, $hideArgsIndexes) - { + $f = function ($index, $arg) use (&$f, $hideArgsIndexes) { static $i = 0; if (($i == 0) && in_array($index, $hideArgsIndexes)) { return '***'; @@ -120,17 +119,17 @@ function html_trace ($errstr = "") return '…'; } if (is_object($arg)) { - return 'CLASS: '.get_class($arg); + return 'CLASS: ' . get_class($arg); } elseif (is_array($arg)) { /* Avoid converting array to string errors */ $i++; - $ret = 'array('.implode(',', array_map($f, array_keys($arg), $arg)).')'; + $ret = 'array(' . implode(',', array_map($f, array_keys($arg), $arg)) . ')'; $i--; return $ret; } else { if (strlen("$arg") > 512) { - $arg = substr("$arg", 0, 512)."…"; + $arg = substr("$arg", 0, 512) . "…"; } - return '"'.htmlescape("$arg").'"'; + return '"' . htmlescape("$arg") . '"'; } }; $args = implode(',', array_map($f, array_keys($ct['args']), $ct['args'])); @@ -148,23 +147,23 @@ function html_trace ($errstr = "") } else { $line = ''; } - $color = ($index & 1) ? '#404040' : '606060'; - $return_html .= "<tr style='background-color:$color'><td style='padding-left:20px' width=\"30%\">".htmlescape(_("Trace")."[$index]: $loc").'</td>'; - $return_html .= "<td>".htmlescape(_("File").": $file ("._('Line')." $line)").'</td><td width="10%">'.htmlescape(_("Type").": $type").'</td></tr>'; - $return_html .= "<tr style='background-color:$color'><td colspan=3 style='padding-left:20px;'>".htmlescape(_("Arguments").": $args").'</td></tr>'; + $color = ($index & 1) ? '#404040' : '606060'; + $return_html .= "<tr style='background-color:$color'><td style='padding-left:20px' width=\"30%\">" . htmlescape(_("Trace") . "[$index]: $loc") . '</td>'; + $return_html .= "<td>" . htmlescape(_("File") . ": $file (" . _('Line') . " $line)") . '</td><td width="10%">' . htmlescape(_("Type") . ": $type") . '</td></tr>'; + $return_html .= "<tr style='background-color:$color'><td colspan=3 style='padding-left:20px;'>" . htmlescape(_("Arguments") . ": $args") . '</td></tr>'; /* Add trace part to mailto body */ $return_mailto .= rawurlencode( - "\nTrace[".$index."]:".$loc. - "\nFile : ".$file. - "\nLine : ".$line. - "\nType : ".$type. - "\n ".$args. - "\n"); + "\nTrace[" . $index . "]:" . $loc . + "\nFile : " . $file . + "\nLine : " . $line . + "\nType : " . $type . + "\n " . $args . + "\n"); } - $return_html .= "</table>"; - $return_mailto .= rawurlencode("=== /Trace ==="); + $return_html .= "</table>"; + $return_mailto .= rawurlencode("=== /Trace ==="); return [$return_html, $return_mailto]; } @@ -182,7 +181,7 @@ function html_trace ($errstr = "") */ function gosaRaiseError ($errno, $errstr, $errfile, $errline) { - global $error_collector,$config, $error_collector_mailto; + global $error_collector, $config, $error_collector_mailto; // To avoid recursion - restore original error handler. restore_error_handler(); @@ -207,7 +206,7 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline) /* Send all errors to logging class, except "Ldap : No such object" messages*/ if (class_exists('logging') && !preg_match('/No such object/', $errstr)) { - logging::log('error', 'php', $errfile, [], 'Type:'.$errno.', Message:'.$errstr.', File:'.$errfile.', Line: '.$errline); + logging::log('error', 'php', $errfile, [], 'Type:' . $errno . ', Message:' . $errstr . ', File:' . $errfile . ', Line: ' . $errline); } /* Error messages are hidden in FusionDirectory, so we only send them to the logging class and abort here */ @@ -219,39 +218,19 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline) /* Create header as needed */ if ($error_collector == "") { - /* Mailto body header */ - $version = FD_VERSION; - - $error_collector_mailto .= rawurlencode( - "Oups. Seems like you've catched some kind of bug inside FusionDirectory/PHP. You may want to help ". - "us to improve the software stability. If so, please provide some more information below.". - "\n\n". - "*** FusionDirectory bug report ***". - "\nFusionDirectory Version: $version". - "\n\n". - "Please describe what you did to produce this error as detailed as possible.". - "\n\n". - "*** PHP error information ***\n\n"); - $error_collector = ' <div class="error"> <table width="100%"> <tr> <td> <img src="geticon.php?context=status&icon=dialog-warning&size=16" alt="" class="center"/> - <strong style="font-size:14px">'. - htmlescape(_('Generating this page caused the PHP interpreter to raise some errors!')).' + <strong style="font-size:14px">' . + htmlescape(_('Generating this page caused the PHP interpreter to raise some errors!')) . ' </strong> </td> - <td align=right> - <a href="mailto:bugs@fusiondirectory.org?subject=FusionDirectory%20bugreport&body=%BUGBODY%"> - <img src="geticon.php?context=applications&icon=internet-mail&size=16" title="'.htmlescape(_('Send bug report to the FusionDirectory Team')). - '" class="center" alt="'.htmlescape(_('Mail icon')).'"> '.htmlescape(_('Send bug report')).' - </a> - </td> <td align="right"> - <button onClick="$(\'errorbox\').toggle();">'. - htmlescape(_('Toggle information')).' + <button onClick="$(\'errorbox\').toggle();">' . + htmlescape(_('Toggle information')) . ' </button> </td> </tr> @@ -260,14 +239,8 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline) <div id="errorbox" style="position:absolute; z-index:150; display: none;">'; } - /* Create error header */ - $error_collector_mailto .= rawurlencode("=== Error === \n"); - $error_collector_mailto .= rawurlencode("PHP error: $errstr ($errfile, line $errline)\n"); - $error_collector_mailto .= rawurlencode("=== /Error === \n\n"); - list($html_trace, $mailto_trace) = html_trace($errstr); - $error_collector .= $html_trace; - $error_collector_mailto .= $mailto_trace; + $error_collector .= $html_trace; /* Flush in case of fatal errors */ if (preg_match('/^fatal/i', $errstr) || (PHP_ERROR_FATAL == 'TRUE')) { @@ -276,7 +249,7 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline) if (PHP_ERROR_FATAL == 'TRUE') { $error_collector = str_replace('display: none;', '', $error_collector); } - echo $error_collector."</div>"; + echo $error_collector . "</div>"; flush(); exit; } @@ -292,7 +265,7 @@ function gosaRaiseError ($errno, $errstr, $errfile, $errline) function fusiondirectoryExceptionHandler (Throwable $throwable) { try { - logging::log('error', 'fatal', '', [], 'Uncaught '.get_class($throwable).': '.$throwable->getMessage()); + logging::log('error', 'fatal', '', [], 'Uncaught ' . get_class($throwable) . ': ' . $throwable->getMessage()); } catch (Throwable $t) { /* Ignore exceptions/errors here */ } @@ -306,7 +279,7 @@ function fusiondirectoryExceptionHandler (Throwable $throwable) } } catch (Throwable $t) { /* Minimal display if exceptions happens when building the pretty one */ - echo 'Uncaught '.get_class($throwable).': '.$throwable->getMessage(); + echo 'Uncaught ' . get_class($throwable) . ': ' . $throwable->getMessage(); } exit(255); @@ -321,7 +294,7 @@ function dummy_error_handler () /* Bail out for incompatible/old PHP versions */ if (!version_compare(phpversion(), PHP_MIN_VERSION, ">=")) { - echo "PHP version needs to be ".PHP_MIN_VERSION." or above to run FusionDirectory. Aborted."; + echo "PHP version needs to be " . PHP_MIN_VERSION . " or above to run FusionDirectory. Aborted."; exit(); } @@ -330,7 +303,7 @@ date_default_timezone_set("GMT"); /* Get base dir for reference */ $BASE_DIR = dirname(dirname(__FILE__)); -$ROOT_DIR = $BASE_DIR."/html"; +$ROOT_DIR = $BASE_DIR . "/html"; error_reporting(E_ALL | E_STRICT); /* Register error handler */ @@ -341,18 +314,18 @@ set_error_handler('gosaRaiseError', E_WARNING | E_NOTICE | E_USER_ERROR | E_USER set_exception_handler('fusiondirectoryExceptionHandler'); $variables_order = 'ES'; -ini_set('track_vars', '1'); -ini_set('display_errors', '1'); -ini_set('report_memleaks', '1'); -ini_set('include_path', ".:$BASE_DIR/include:".PHP_DIR.':'.PEAR_DIR); +ini_set('track_vars', '1'); +ini_set('display_errors', '1'); +ini_set('report_memleaks', '1'); +ini_set('include_path', ".:$BASE_DIR/include:" . PHP_DIR . ':' . PEAR_DIR); /* Do smarty setup */ require(SMARTY); $smarty = new Smarty; -$smarty->setTemplateDir($BASE_DIR.'/ihtml/'); -$smarty->caching = Smarty::CACHING_OFF; +$smarty->setTemplateDir($BASE_DIR . '/ihtml/'); +$smarty->caching = Smarty::CACHING_OFF; $smarty->assign('css_files', []); $smarty->assign('js_files', []);