From 178fdd8bb896dc5aacc4a7f20caa82fff0e037c9 Mon Sep 17 00:00:00 2001 From: Janusz Dobrowolski Date: Tue, 16 Jun 2009 15:14:39 +0000 Subject: [PATCH] Fixed error logging, cleaned up output buffering warnings. --- includes/errors.inc | 27 +++++++++++++-------------- includes/session.inc | 2 +- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/includes/errors.inc b/includes/errors.inc index a23c6d3..4bf5463 100644 --- a/includes/errors.inc +++ b/includes/errors.inc @@ -25,19 +25,12 @@ function error_handler($errno, $errstr, $file, $line) { global $messages, $go_debug; // error_reporting==0 when messages are set off with @ - if ($errno) { - if(error_reporting()) + if ($errno & error_reporting()) $messages[] = array($errno, $errstr, $file, $line); - - $ignored = E_USER_WARNING|E_USER_ERROR|E_USER_NOTICE; - // don't log notices hidden with @ unless in debug mode - if (!$go_debug) $ignored |= E_NOTICE; - - if (!($errno & $ignored)) - error_log( - user_company().':'.$_SESSION["wa_current_user"]->loginname.':'. - basename($file).":$line: $errstr"); - } + else // log all not displayed messages + error_log(user_company() . ':' . $_SESSION["wa_current_user"]->loginname.':' + . basename($file) .":$line: $errstr"); + return true; } //------------------------------------------------------------------------------ @@ -89,12 +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('ob_end_flush'); + 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) { diff --git a/includes/session.inc b/includes/session.inc index 6de875b..73f9253 100644 --- a/includes/session.inc +++ b/includes/session.inc @@ -131,7 +131,7 @@ include_once($path_to_root . "/includes/main.inc"); $Ajax =& new Ajax(); // intercept all output to destroy it in case of ajax call -register_shutdown_function('ob_end_flush'); +register_shutdown_function('end_flush'); ob_start('output_html',0); // colect all error msgs -- 2.30.2