//-----------------------------------------------------------------------------
// Error handler - collects all php/user messages for
// display in message box.
-// FIX: fatal errors ?
function error_handler($errno, $errstr, $file, $line) {
global $messages;
echo "<div id='msgbox'>";
$before_box = ob_get_clean(); // save html content before error box
// Necessary restart instead of get_contents/clean calls due to a bug in php 4.3.2
+ register_shutdown_function('ob_end_flush');
ob_start('output_html');
echo "</div>";
}
// Fatal errors are not send to error_handler,
// so we must check the output
if ($text && preg_match('/\bFatal error(<.*?>)?:(.*)/i', $text, $m)) {
- $Ajax->aCommands = array(); // Don't update page on errors
-
- $messages[] = array(E_ERROR, $m[0], null, null);
+ $Ajax->aCommands = array(); // Don't update page via ajax on errors
+ $text = preg_replace('/\bFatal error(<.*?>)?:(.*)/i','', $text);
+ $messages[] = array(E_ERROR, $m[2], null, null);
}
$Ajax->run();
return in_ajax() ? fmt_errors() : ($before_box.fmt_errors().$text);