X-Git-Url: https://delta.frontaccounting.com/gitweb/?a=blobdiff_plain;f=includes%2Ferrors.inc;h=83ccb6c0dae506594e377036eb08e1c268dd97d5;hb=31c79a2d7cc29c18ac1bfa92cf070857a5b9fe98;hp=04874a392538a6145ba61e7ea151b5ed43deccea;hpb=c09be0dad6b05131e240349a375af7a4b7bf3444;p=fa-stable.git diff --git a/includes/errors.inc b/includes/errors.inc index 04874a39..83ccb6c0 100644 --- a/includes/errors.inc +++ b/includes/errors.inc @@ -1,25 +1,36 @@ . +***********************************************************************/ $messages = array(); // container for system messages $before_box = ''; // temporary container for output html data before error box $msg_colors = array( E_USER_ERROR => array('bg'=>'#ffcccc', 'txt'=>'#dd2200', 'bd'=>'#cc3300'), - E_USER_WARNING => array('bg'=>'#ffcccc', 'txt'=>'#dd2200', 'bd'=>'#cc3300'), + E_USER_WARNING => array('bg'=>'#ffff00', 'txt'=>'#ff5500', 'bd'=>'#ff9900'), E_USER_NOTICE => array('bg'=>'#ccffcc', 'txt'=>'#007700', 'bd'=>'#33cc00')); //----------------------------------------------------------------------------- // Error handler - collects all php/user messages for // display in message box. -// FIX: fatal errors ? function error_handler($errno, $errstr, $file, $line) { - global $messages; + global $messages, $go_debug; // error_reporting==0 when messages are set off with @ if ($errno & error_reporting()) - $messages[] = array($errno, $errstr, $file, $line); - + $messages[] = array($errno, $errstr, $file, $line); + else if($errno&~E_NOTICE)// log all not displayed messages + error_log(user_company() . ':' . $_SESSION["wa_current_user"]->loginname.':' + . basename($file) .":$line: $errstr"); + return true; } //------------------------------------------------------------------------------ @@ -34,14 +45,22 @@ function fmt_errors($center=true) { $content = ''; foreach($messages as $msg) { if ($msg[0]>$type) continue; - if ($msg[0]<$type && $type>E_USER_ERROR) { - $content = ''; // clean notices when we have errors - $type = E_USER_ERROR; // php or user errors + + if ($msg[0]<$type) { + if ($msg[0] == E_USER_WARNING) { + $type = E_USER_WARNING; // user warnings + $content = ''; // clean notices when we have errors + } else { + $type = E_USER_ERROR; // php or user errors + if($type == E_USER_WARNING) + $content = ''; // clean other messages + } } $str = $msg[1]; $c = $msg_colors[$type]; - if ($msg[0]" .$str.""; @@ -63,11 +82,18 @@ function error_box() { global $before_box; echo "
"; - $before_box = ob_get_clean(); // save html content before error box + $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('end_flush'); ob_start('output_html'); echo "
"; } +/* + Helper to avoid sparse log notices. +*/ +function end_flush () { + if (ob_get_level()) ob_end_flush(); +} function display_db_error($msg, $sql_statement=null, $exit=true) {