Index: branches/RC/core/kernel/application.php =================================================================== diff -u -N -r11546 -r11610 --- branches/RC/core/kernel/application.php (.../application.php) (revision 11546) +++ branches/RC/core/kernel/application.php (.../application.php) (revision 11610) @@ -2370,25 +2370,31 @@ */ function handleError($errno, $errstr, $errfile = '', $errline = '', $errcontext = '') { - if( constOn('SILENT_LOG') ) - { + if (defined('SILENT_LOG') && SILENT_LOG) { $fp = fopen(FULL_PATH.'/silent_log.txt','a'); $time = adodb_date('d/m/Y H:i:s'); fwrite($fp, '['.$time.'] #'.$errno.': '.strip_tags($errstr).' in ['.$errfile.'] on line '.$errline."\n"); fclose($fp); } - if (!$this->errorHandlers || (defined('DEBUG_MODE') && DEBUG_MODE && defined('DBG_SKIP_REPORTING') && DBG_SKIP_REPORTING)) { + $debug_mode = defined('DEBUG_MODE') && DEBUG_MODE; + $skip_reporting = defined('DBG_SKIP_REPORTING') && DBG_SKIP_REPORTING; + + if (!$this->errorHandlers || ($debug_mode && $skip_reporting)) { // when debugger absent OR it's present, but we actually can't see it's error report (e.g. during ajax request) - if ($errno == E_USER_ERROR) { + $ignore_fatal_errors = defined('DBG_IGNORE_FATAL_ERRORS') && DBG_IGNORE_FATAL_ERRORS; + + if (($errno == E_USER_ERROR) && !$ignore_fatal_errors) { header('HTTP/1.0 500 Script Fatal Error'); - echo ('
- Fatal Error: - '."$errstr in $errfile on line $errline".' -
'); + echo ('
+ Fatal Error: '."$errstr in $errfile on line $errline".' +
'); exit; } - return true; + + if (!$this->errorHandlers) { + return true; + } } $res = false;