";
+ $error_collector= "
+
+
+ ";
+ if (function_exists("get_template_path")){
+ $error_collector.= " ";
+ }
+ $error_collector.= "
+ ".
+ _("Generating this page caused the PHP interpreter to raise some errors!")."
+
+
+
+
+ "._("Send bugreport")."
+
+
+
+ ".
+ _("Toggle information")."
+
+
+
+
+
";
}
}
/* Create error header */
$error_collector.= "
"._("PHP error")." \"$errstr\" ";
+ $error_collector_mailto .= prepare4mailbody("=== Error === \n");
+ $error_collector_mailto .= prepare4mailbody("PHP error: $errstr ($errfile, line $errline)\n");
+ $error_collector_mailto .= prepare4mailbody("=== /Error === \n\n");
+
/* Extract traceback data - if available */
if (function_exists('debug_backtrace')){
$trace= debug_backtrace();
+ $error_collector_mailto .= prepare4mailbody("=== Trace ===");
+
/* Generate trace history */
- for ($index= 1; $index"._("Trace")."[$index]: $loc ";
$error_collector.= ""._("File").": $file ("._('Line')." $line) "._("Type").": $type ";
$error_collector.= ""._("Arguments").": $args ";
- }
+
+ /* Add trace part to mailto body */
+ $error_collector_mailto .= prepare4mailbody(
+ "\nTrace[".$index."]:".$loc.
+ "\nFile : ".$file.
+ "\nLine : ".$line.
+ "\nType : ".$type.
+ "\n ".$args.
+ "\n");
+ }
}
+ $error_collector_mailto .= prepare4mailbody("=== /Trace === \n");
/* Close error table */
$error_collector.= "
";
- /* Write to syslog */
- gosa_log ("PHP error: $errstr ($errfile, line $errline)");
-
/* Flush in case of fatal errors */
if (preg_match('/^fatal/i', $errstr)){
echo $error_collector."
";
@@ -129,6 +222,50 @@ function gosaRaiseError($errno, $errstr, $errfile, $errline)
}
+function prepare4mailbody($string)
+{
+ $string = html_entity_decode($string);
+
+ $from = array(
+ "/%/",
+ "/ /",
+ "/\n/",
+ "/\r/",
+ "/!/",
+ "/#/",
+ "/\*/",
+ "/\//",
+ "/",
+ "/>/",
+ "/\?/",
+ "/\&/",
+ "/\(/",
+ "/\)/",
+ "/\"/");
+
+ $to = array(
+ "%25",
+ "%20",
+ "%0A",
+ "%0D",
+ "%21",
+ "%23",
+ "%2A",
+ "%2F",
+ "%3C",
+ "%3E",
+ "%3F",
+ "%38",
+ "%28",
+ "%29",
+ "%22");
+
+ $string = preg_replace($from,$to,$string);
+
+ return($string);
+}
+
+
function dummy_error_handler()
{
}
@@ -141,6 +278,7 @@ error_reporting (E_ALL);
/* Register error handler */
$error_collector= "";
+$error_collector_mailto= "";
set_error_handler('gosaRaiseError');
$variables_order= "ES";
@@ -157,5 +295,10 @@ $smarty->template_dir = $BASE_DIR.'/ihtml/';
$smarty->caching= false;
$smarty->php_handling= SMARTY_PHP_REMOVE;
+/* Set timezone */
+if (function_exists("date_default_timezone_set")){
+ date_default_timezone_set("GMT");
+}
+
// vim:tabstop=2:expandtab:shiftwidth=2:filetype=php:syntax:ruler:
?>