From c17dc6aa31aaa6e7f61bd25993be55354e428996 Mon Sep 17 00:00:00 2001 From: alecpl <alec@alec.pl> Date: Sat, 20 Sep 2008 13:21:15 -0400 Subject: [PATCH] #1485385: fix missing close form tag --- program/include/bugs.inc | 114 ++++++++++++++++++++++++++++++++------------------------- 1 files changed, 64 insertions(+), 50 deletions(-) diff --git a/program/include/bugs.inc b/program/include/bugs.inc index bc1a293..56b88c6 100644 --- a/program/include/bugs.inc +++ b/program/include/bugs.inc @@ -4,8 +4,8 @@ +-----------------------------------------------------------------------+ | program/include/bugs.inc | | | - | This file is part of the BQube Webmail client | - | Copyright (C) 2005, BQube Dev - Switzerland | + | This file is part of the RoudCube Webmail client | + | Copyright (C) 2005-2007, RoudCube Dev - Switzerland | | Licensed under the GNU GPL | | | | PURPOSE: | @@ -20,19 +20,29 @@ */ -// throw system error and show error page -function raise_error($arg=array(), $log=FALSE, $terminate=FALSE) +/** + * Error handling and logging functions + * + * @package Core + */ + + +/** + * Throw system error and show error page + * + * @param array Named parameters + * - code: Error code (required) + * - type: Error type [php|db|imap|javascript] (required) + * - message: Error message + * - file: File where error occured + * - line: Line where error occured + * @param boolean True to log the error + * @param boolean Terminate script execution + */ +function raise_error($arg=array(), $log=false, $terminate=false) { global $__page_content, $CONFIG, $OUTPUT, $ERROR_CODE, $ERROR_MESSAGE; - /* $arg keys: - int code - string type (php, xpath, db, imap, javascript) - string message - sring file - int line - */ - // report bug (if not incompatible browser) if ($log && $arg['type'] && $arg['message']) log_bug($arg); @@ -48,55 +58,60 @@ } -// report error +/** + * Report error according to configured debug_level + * + * @param array Named parameters + * @see raise_error() + */ function log_bug($arg_arr) - { - global $CONFIG, $INSTALL_PATH; - $program = $arg_arr['type']=='xpath' ? 'XPath' : strtoupper($arg_arr['type']); +{ + global $CONFIG; + $program = strtoupper($arg_arr['type']); // write error to local log file if ($CONFIG['debug_level'] & 1) - { - $log_entry = sprintf("[%s] %s Error: %s in %s on line %d\n", - date("d-M-Y H:i:s O", mktime()), - $program, - $arg_arr['message'], - $arg_arr['file'], - $arg_arr['line']); - - if (empty($CONFIG['log_dir'])) - $CONFIG['log_dir'] = $INSTALL_PATH.'logs'; + { + $post_query = ($_SERVER['REQUEST_METHOD'] == 'POST' ? '?_task='.urlencode($_POST['_task']).'&_action='.urlencode($_POST['_action']) : ''); + $log_entry = sprintf("[%s] %s Error: %s in %s on line %d (%s %s)\n", + date("d-M-Y H:i:s O", mktime()), + $program, + $arg_arr['message'], + $arg_arr['file'], + $arg_arr['line'], + $_SERVER['REQUEST_METHOD'], + $_SERVER['REQUEST_URI'] . $post_query); - if ($fp = fopen($CONFIG['log_dir'].'/errors', 'a')) - - { + if (empty($CONFIG['log_dir'])) + $CONFIG['log_dir'] = INSTALL_PATH.'logs'; + + // try to open specific log file for writing + if ($CONFIG['log_driver'] == 'syslog') + { + syslog(LOG_ERR, $log_entry); + } + else if ($fp = @fopen($CONFIG['log_dir'].'/errors', 'a')) + { + // log_driver == 'file' is the default, assumed here. fwrite($fp, $log_entry); fclose($fp); - } } + else + { + // send error to PHPs error handler + trigger_error($arg_arr['message']); + } + } -/* // resport the bug to the global bug reporting system if ($CONFIG['debug_level'] & 2) - { - $delm = '%AC'; - http_request(sprintf('http://roundcube.net/log/bug.php?_type=%s&_domain=%s&_server_ip=%s&_client_ip=%s&_useragent=%s&_url=%s%%3A//%s&_errors=%s%s%s%s%s', - $arg_arr['type'], - $GLOBALS['HTTP_HOST'], - $GLOBALS['SERVER_ADDR'], - $GLOBALS['REMOTE_ADDR'], - rawurlencode($GLOBALS['HTTP_USER_AGENT']), - $GLOBALS['SERVER_PORT']==43 ? 'https' : 'http', - $GLOBALS['HTTP_HOST'].$GLOBALS['REQUEST_URI'], - $arg_arr['file'], $delm, - $arg_arr['line'], $delm, - rawurlencode($arg_arr['message']))); - } -*/ + { + // TODO: Send error via HTTP + } // show error if debug_mode is on if ($CONFIG['debug_level'] & 4) - { + { print "<b>$program Error"; if (!empty($arg_arr['file']) && !empty($arg_arr['line'])) @@ -106,8 +121,7 @@ print nl2br($arg_arr['message']); print '<br />'; flush(); - } } +} - -?> \ No newline at end of file +?> -- Gitblit v1.9.1