function access_denied() { if (!auth_is_user_authenticated()) { if (basename($_SERVER['SCRIPT_NAME']) != 'login_page.php') { $t_return_page = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $t_return_page .= '?' . $_SERVER['QUERY_STRING']; } $t_return_page = string_url(string_sanitize_url($t_return_page)); print_header_redirect('login_page.php?return=' . $t_return_page); } } else { if (auth_get_current_user_id() == user_get_id_by_name(config_get_global('anonymous_account'))) { if (basename($_SERVER['SCRIPT_NAME']) != 'login_page.php') { $t_return_page = $_SERVER['PHP_SELF']; if (isset($_SERVER['QUERY_STRING'])) { $t_return_page .= '?' . $_SERVER['QUERY_STRING']; } $t_return_page = string_url(string_sanitize_url($t_return_page)); echo '<center>'; echo '<p>' . error_string(ERROR_ACCESS_DENIED) . '</p>'; print_bracket_link('login_page.php?return=' . $t_return_page, lang_get('click_to_login')); echo '<p></p>'; print_bracket_link('main_page.php', lang_get('proceed')); echo '</center>'; } } else { echo '<center>'; echo '<p>' . error_string(ERROR_ACCESS_DENIED) . '</p>'; print_bracket_link('main_page.php', lang_get('proceed')); echo '</center>'; } } exit; }
function check_print_error_rows() { global $g_show_errors, $g_errors_temporarily_suppressed, $g_errors_raised; if (!$g_show_errors || $g_errors_temporarily_suppressed) { $g_errors_raised = array(); return; } foreach ($g_errors_raised as $t_error) { # build an appropriate error string switch ($t_error['type']) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; $t_error_description = htmlentities($t_error['error']); break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; $t_error_description = htmlentities($t_error['error']); break; case E_USER_ERROR: $t_error_type = 'APPLICATION ERROR #' . $t_error['error']; $t_error_description = htmlentities(error_string($t_error['error'])); break; case E_USER_WARNING: $t_error_type = 'APPLICATION WARNING #' . $t_error['error']; $t_error_description = htmlentities(error_string($t_error['error'])); break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; $t_error_description = htmlentities($t_error['error']); break; default: # shouldn't happen, just display the error just in case $t_error_type = ''; $t_error_description = htmlentities($t_error['error']); } echo "\t<tr>\n\t\t<td colspan=\"2\" class=\"error\">"; echo "<strong>{$t_error_type}:</strong> {$t_error_description}<br />"; echo '<em>Raised in file ' . htmlentities($t_error['file']) . ' on line ' . htmlentities($t_error['line']) . '</em>'; echo "</td>\n\t</tr>\n"; } $g_errors_raised = array(); }
/** * JSON error handler * * <p>Ensures that all necessary headers are set and terminates processing after being invoked.</p> */ function json_error_handler($p_type, $p_error, $p_file, $p_line, $p_context) { # flush any language overrides to return to user's natural default if (function_exists('db_is_connected')) { if (db_is_connected()) { lang_push(lang_get_default()); } } $t_error_code = ERROR_GENERIC; // default # build an appropriate error string switch ($p_type) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; $t_error_description = $p_error; break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; $t_error_description = $p_error; break; case E_USER_ERROR: $t_error_type = "APPLICATION ERROR #{$p_error}"; $t_error_code = $p_error; $t_error_description = error_string($p_error); break; case E_USER_WARNING: $t_error_type = "APPLICATION WARNING #{$p_error}"; $t_error_code = $p_error; $t_error_description = error_string($p_error); break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; $t_error_description = $p_error; break; default: #shouldn't happen, just display the error just in case $t_error_type = ''; $t_error_description = $p_error; } json_output_raw(array('status' => 'ERROR', 'error' => array('code' => $t_error_code, 'type' => $t_error_type, 'message' => $t_error_description), 'contents' => $t_error_description)); }
function access_denied() { if (!php_version_at_least('4.1.0')) { global $_SERVER; } if (!auth_is_user_authenticated()) { if (basename($_SERVER['SCRIPT_NAME']) != 'login_page.php') { if (!isset($_SERVER['REQUEST_URI'])) { if (!isset($_SERVER['QUERY_STRING'])) { $_SERVER['QUERY_STRING'] = ''; } $_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . '?' . $_SERVER['QUERY_STRING']; } $t_return_page = string_url($_SERVER['REQUEST_URI']); print_header_redirect('login_page.php?return=' . $t_return_page); } } else { echo '<center>'; echo '<p>' . error_string(ERROR_ACCESS_DENIED) . '</p>'; print_bracket_link('main_page.php', lang_get('proceed')); echo '</center>'; } exit; }
/** * * @access public */ function auth_http_prompt() { header('HTTP/1.0 401 Authorization Required'); header('WWW-Authenticate: Basic realm="' . lang_get('http_auth_realm') . '"'); header('status: 401 Unauthorized'); echo '<center>'; echo '<p>' . error_string(ERROR_ACCESS_DENIED) . '</p>'; print_bracket_link('main_page.php', lang_get('proceed')); echo '</center>'; exit; }
?> </td> </tr> <tr <?php echo helper_alternate_class(); ?> valign="top"> <th class="category"> <?php echo lang_get('realname'); ?> </th> <td> <?php if (!($t_can_manage || $t_can_see_realname)) { print error_string(ERROR_ACCESS_DENIED); } else { echo string_display_line($u_realname); } ?> </td> </tr> <?php if ($t_can_manage) { ?> <tr> <td colspan="2" class="center"> <?php print_bracket_link('manage_user_edit_page.php?user_id=' . $f_user_id, lang_get('manage_user')); ?> </td>
/** * Default error handler * * This handler will not receive E_ERROR, E_PARSE, E_CORE_*, or E_COMPILE_* * errors. * * E_USER_* are triggered by us and will contain an error constant in $p_error * The others, being system errors, will come with a string in $p_error * * @access private * @param integer $p_type Contains the level of the error raised, as an integer. * @param string $p_error Contains the error message, as a string. * @param string $p_file Contains the filename that the error was raised in, as a string. * @param integer $p_line Contains the line number the error was raised at, as an integer. * @param array $p_context To the active symbol table at the point the error occurred (optional). * @return void * @uses lang_api.php * @uses config_api.php * @uses compress_api.php * @uses database_api.php (optional) * @uses html_api.php (optional) */ function error_handler($p_type, $p_error, $p_file, $p_line, array $p_context) { global $g_error_parameters, $g_error_handled, $g_error_proceed_url; global $g_error_send_page_header; # check if errors were disabled with @ somewhere in this call chain if (0 == error_reporting()) { return; } $t_lang_pushed = false; $t_db_connected = false; if (function_exists('db_is_connected')) { if (db_is_connected()) { $t_db_connected = true; } } $t_html_api = false; if (function_exists('html_end')) { $t_html_api = true; } # flush any language overrides to return to user's natural default if ($t_db_connected) { lang_push(lang_get_default()); $t_lang_pushed = true; } $t_method_array = config_get_global('display_errors'); if (isset($t_method_array[$p_type])) { $t_method = $t_method_array[$p_type]; } else { if (isset($t_method_array[E_ALL])) { $t_method = $t_method_array[E_ALL]; } else { $t_method = 'none'; } } # build an appropriate error string $t_error_location = 'in \'' . $p_file . '\' line ' . $p_line; $t_error_description = '\'' . $p_error . '\' ' . $t_error_location; switch ($p_type) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; break; case E_STRICT: $t_error_type = 'STRICT NOTICE'; break; case E_RECOVERABLE_ERROR: # This should generally be considered fatal (like E_ERROR) $t_error_type = 'SYSTEM ERROR'; break; case E_DEPRECATED: $t_error_type = 'DEPRECATED'; break; case E_USER_ERROR: $t_error_type = 'APPLICATION ERROR #' . $p_error; $t_error_description = error_string($p_error); if ($t_method == DISPLAY_ERROR_INLINE) { $t_error_description .= ' (' . $t_error_location . ")\n" . error_string(ERROR_DISPLAY_USER_ERROR_INLINE); } break; case E_USER_WARNING: $t_error_type = 'APPLICATION WARNING #' . $p_error; $t_error_description = error_string($p_error) . ' (' . $t_error_location . ')'; break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; break; case E_USER_DEPRECATED: # Get the parent of the call that triggered the error to facilitate # debugging with a more useful filename and line number $t_stack = debug_backtrace(); $t_caller = $t_stack[2]; $t_error_type = 'WARNING'; $t_error_description = error_string($p_error) . ' (in ' . $t_caller['file'] . ' line ' . $t_caller['line'] . ')'; if ($t_method == DISPLAY_ERROR_INLINE && php_sapi_name() != 'cli') { # Enqueue messages for later display with error_print_delayed() global $g_errors_delayed; $g_errors_delayed[] = $t_error_description; $g_error_handled = true; return; } break; default: # shouldn't happen, just display the error just in case $t_error_type = 'UNHANDLED ERROR TYPE (' . '<a href="http://php.net/errorfunc.constants">' . $p_type . '</a>)'; $t_error_description = $p_error . ' (' . $t_error_location . ')'; } $t_error_description = nl2br($t_error_description); if (php_sapi_name() == 'cli') { if (DISPLAY_ERROR_NONE != $t_method) { echo $t_error_type . ': ' . $t_error_description . "\n"; if (ON == config_get_global('show_detailed_errors')) { echo "\n"; debug_print_backtrace(); } } if (DISPLAY_ERROR_HALT == $t_method) { exit(1); } } else { switch ($t_method) { case DISPLAY_ERROR_HALT: # disable any further event callbacks if (function_exists('event_clear_callbacks')) { event_clear_callbacks(); } $t_oblen = ob_get_length(); if ($t_oblen > 0) { $t_old_contents = ob_get_contents(); if (!error_handled()) { # Retrieve the previously output header if (false !== preg_match_all('|^(.*)(</head>.*$)|is', $t_old_contents, $t_result) && isset($t_result[1]) && isset($t_result[1][0])) { $t_old_headers = $t_result[1][0]; unset($t_old_contents); } } } # We need to ensure compression is off - otherwise the compression headers are output. compress_disable(); # then clean the buffer, leaving output buffering on. if ($t_oblen > 0) { ob_clean(); } # If HTML error output was disabled, set an error header and stop if (defined('DISABLE_INLINE_ERROR_REPORTING')) { # @TODO Have a mapping for mantis error codes to appropiate HTTP error codes header(' ', true, 400); exit(1); } # don't send the page header information if it has already been sent if ($g_error_send_page_header) { if ($t_html_api) { html_page_top1(); if ($p_error != ERROR_DB_QUERY_FAILED && $t_db_connected == true) { html_page_top2(); } else { html_page_top2a(); } } else { echo '<html><head><title>', $t_error_type, '</title></head><body>'; } } else { # Output the previously sent headers, if defined if (isset($t_old_headers)) { echo $t_old_headers, "\n"; html_page_top2(); } } echo '<div id="error-msg">'; echo '<div class="error-type">' . $t_error_type . '</div>'; echo '<div class="error-description">', $t_error_description, '</div>'; echo '<div class="error-info">'; if (null === $g_error_proceed_url) { echo lang_get('error_no_proceed'); } else { echo '<a href="', $g_error_proceed_url, '">', lang_get('proceed'), '</a>'; } echo '</div>'; if (ON == config_get_global('show_detailed_errors')) { echo '<div class="error-details">'; error_print_details($p_file, $p_line, $p_context); echo '</div>'; echo '<div class="error-trace">'; error_print_stack_trace(); echo '</div>'; } echo '</div>'; if (isset($t_old_contents)) { echo '<div class="warning">Previous non-fatal errors occurred. Page contents follow.</div>'; echo '<div id="old-contents">'; echo $t_old_contents; echo '</div>'; } if ($t_html_api) { if ($p_error != ERROR_DB_QUERY_FAILED && $t_db_connected == true) { html_page_bottom(); } else { html_body_end(); html_end(); } } else { echo '</body></html>', "\n"; } exit(1); case DISPLAY_ERROR_INLINE: if (!defined('DISABLE_INLINE_ERROR_REPORTING')) { echo '<div class="error-inline">', $t_error_type, ': ', $t_error_description, '</div>'; } $g_error_handled = true; break; default: # do nothing - note we treat this as we've not handled an error, so any redirects go through. } } if ($t_lang_pushed) { lang_pop(); } $g_error_parameters = array(); $g_error_proceed_url = null; }
/** * Default error handler * * This handler will not receive E_ERROR, E_PARSE, E_CORE_*, or E_COMPILE_* * errors. * * E_USER_* are triggered by us and will contain an error constant in $p_error * The others, being system errors, will come with a string in $p_error * * @access private * @param int p_type contains the level of the error raised, as an integer. * @param string p_error contains the error message, as a string. * @param string p_file contains the filename that the error was raised in, as a string. * @param int p_line contains the line number the error was raised at, as an integer. * @param array p_context to the active symbol table at the point the error occurred (optional) * @uses lang_api.php * @uses config_api.php * @uses compress_api.php * @uses database_api.php (optional) * @uses html_api.php (optional) */ function error_handler($p_type, $p_error, $p_file, $p_line, $p_context) { global $g_error_parameters, $g_error_handled, $g_error_proceed_url; global $g_lang_overrides; global $g_error_send_page_header; # check if errors were disabled with @ somewhere in this call chain if (0 == error_reporting()) { return; } $t_lang_pushed = false; $t_db_connected = false; if (function_exists('db_is_connected')) { if (db_is_connected()) { $t_db_connected = true; } } $t_html_api = false; if (function_exists('html_end')) { $t_html_api = true; } # flush any language overrides to return to user's natural default if ($t_db_connected) { lang_push(lang_get_default()); $t_lang_pushed = true; } $t_short_file = basename($p_file); $t_method_array = config_get_global('display_errors'); if (isset($t_method_array[$p_type])) { $t_method = $t_method_array[$p_type]; } else { if (isset($t_method_array[E_ALL])) { $t_method = $t_method_array[E_ALL]; } else { $t_method = 'none'; } } # build an appropriate error string switch ($p_type) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; $t_error_description = "'{$p_error}' in '{$p_file}' line {$p_line}"; break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; $t_error_description = "'{$p_error}' in '{$p_file}' line {$p_line}"; break; case E_USER_ERROR: $t_error_type = "APPLICATION ERROR #{$p_error}"; $t_error_description = error_string($p_error); if ($t_method == DISPLAY_ERROR_INLINE) { $t_error_description .= "\n" . error_string(ERROR_DISPLAY_USER_ERROR_INLINE); } break; case E_USER_WARNING: $t_error_type = "APPLICATION WARNING #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; $t_error_description = $p_error; break; default: # shouldn't happen, just display the error just in case $t_error_type = ''; $t_error_description = $p_error; } $t_error_description = nl2br($t_error_description); switch ($t_method) { case DISPLAY_ERROR_HALT: # disable any further event callbacks if (function_exists('event_clear_callbacks')) { event_clear_callbacks(); } $t_oblen = ob_get_length(); if ($t_oblen > 0) { $t_old_contents = ob_get_contents(); if (!error_handled()) { # Retrieve the previously output header if (false !== preg_match_all('|^(.*)(</head>.*$)|is', $t_old_contents, $result)) { $t_old_headers = $result[1][0]; unset($t_old_contents); } } } # We need to ensure compression is off - otherwise the compression headers are output. compress_disable(); # then clean the buffer, leaving output buffering on. if ($t_oblen > 0) { ob_clean(); } # don't send the page header information if it has already been sent if ($g_error_send_page_header) { if ($t_html_api) { html_page_top1(); if ($p_error != ERROR_DB_QUERY_FAILED && $t_db_connected == true) { html_page_top2(); } else { html_page_top2a(); } } else { echo '<html><head><title>', $t_error_type, '</title></head><body>'; } } else { # Output the previously sent headers, if defined if (isset($t_old_headers)) { echo $t_old_headers, "\n"; html_page_top2(); } } echo '<div id="error-msg">'; echo '<div class="error-type">' . $t_error_type . '</div>'; echo '<div class="error-description">', $t_error_description, '</div>'; echo '<div class="error-info">'; if (null === $g_error_proceed_url) { echo lang_get('error_no_proceed'); } else { echo '<a href="', $g_error_proceed_url, '">', lang_get('proceed'), '</a>'; } echo '</div>'; if (ON == config_get_global('show_detailed_errors')) { echo '<div class="error-details">'; error_print_details($p_file, $p_line, $p_context); echo '</div>'; echo '<div class="error-trace">'; error_print_stack_trace(); echo '</div>'; } echo '</div>'; if (isset($t_old_contents)) { echo '<div class="warning">Previous non-fatal errors occurred. Page contents follow.</div>'; echo '<div id="old-contents">'; echo $t_old_contents; echo '</div>'; } if ($t_html_api) { if ($p_error != ERROR_DB_QUERY_FAILED && $t_db_connected == true) { html_page_bottom(); } else { html_body_end(); html_end(); } } else { echo '</body></html>', "\n"; } exit; case DISPLAY_ERROR_INLINE: echo '<div class="error-inline">', $t_error_type, ': ', $t_error_description, '</div>'; $g_error_handled = true; break; default: # do nothing - note we treat this as we've not handled an error, so any redirects go through. } if ($t_lang_pushed) { lang_pop(); } $g_error_parameters = array(); $g_error_proceed_url = null; }
/** * Function to be called when a user is attempting to access a page that * he/she is not authorised to. This outputs an access denied message then * re-directs to the mainpage. */ function access_denied() { if (!auth_is_user_authenticated()) { if (basename($_SERVER['SCRIPT_NAME']) != 'login_page.php') { $t_return_page = $_SERVER['SCRIPT_NAME']; if (isset($_SERVER['QUERY_STRING'])) { $t_return_page .= '?' . $_SERVER['QUERY_STRING']; } $t_return_page = string_url(string_sanitize_url($t_return_page)); print_header_redirect('login_page.php' . '?return=' . $t_return_page); } } else { if (current_user_is_anonymous()) { if (basename($_SERVER['SCRIPT_NAME']) != 'login_page.php') { $t_return_page = $_SERVER['SCRIPT_NAME']; if (isset($_SERVER['QUERY_STRING'])) { $t_return_page .= '?' . $_SERVER['QUERY_STRING']; } $t_return_page = string_url(string_sanitize_url($t_return_page)); echo '<p class="center">' . error_string(ERROR_ACCESS_DENIED) . '</p><p class="center">'; print_bracket_link(helper_mantis_url('login_page.php') . '?return=' . $t_return_page, lang_get('click_to_login')); echo '</p><p class="center">'; print_bracket_link(helper_mantis_url('main_page.php'), lang_get('proceed')); echo '</p>'; } } else { echo '<p class="center">' . error_string(ERROR_ACCESS_DENIED) . '</p>'; echo '<p class="center">'; print_bracket_link(helper_mantis_url('main_page.php'), lang_get('proceed')); echo '</p>'; } } exit; }
function handle_error($errno, $errstr) { throw new HTTPException(500, "Mantis encountered an error: " . error_string($errstr)); $resp->send(); exit; }
function mc_error_handler($p_type, $p_error, $p_file, $p_line, $p_context) { global $g_error_parameters, $g_error_handled, $g_error_proceed_url; global $g_lang_overrides; global $g_error_send_page_header; global $l_oServer; # check if errors were disabled with @ somewhere in this call chain # also suppress php 5 strict warnings if (0 == error_reporting() || 2048 == $p_type) { return; } $t_lang_pushed = false; # flush any language overrides to return to user's natural default if (function_exists('db_is_connected')) { if (db_is_connected()) { lang_push(lang_get_default()); $t_lang_pushed = true; } } $t_short_file = basename($p_file); $t_method_array = config_get('display_errors'); if (isset($t_method_array[$p_type])) { $t_method = $t_method_array[$p_type]; } else { $t_method = 'none'; } # build an appropriate error string switch ($p_type) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; $t_error_description = $p_error; break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; $t_error_description = $p_error; break; case E_USER_ERROR: $t_error_type = "APPLICATION ERROR #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_WARNING: $t_error_type = "APPLICATION WARNING #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; $t_error_description = $p_error; break; default: #shouldn't happen, just display the error just in case $t_error_type = ''; $t_error_description = $p_error; } $t_error_description = $t_error_description; $t_error_stack = error_get_stack_trace(); $l_oServer->fault('Server', "Error Type: {$t_error_type},\nError Description:\n{$t_error_description},\nStack Trace:\n{$t_error_stack}"); $l_oServer->send_response(); exit; }
/** * Default error handler * * This handler will not receive E_ERROR, E_PARSE, E_CORE_*, or E_COMPILE_* * errors. * * E_USER_* are triggered by us and will contain an error constant in $p_error * The others, being system errors, will come with a string in $p_error * * @access private * @param int p_type contains the level of the error raised, as an integer. * @param string p_error contains the error message, as a string. * @param string p_file contains the filename that the error was raised in, as a string. * @param int p_line contains the line number the error was raised at, as an integer. * @param array p_context to the active symbol table at the point the error occurred (optional) * @uses lang_api.php * @uses config_api.php * @uses compress_api.php * @uses database_api.php (optional) * @uses html_api.php (optional) */ function error_handler($p_type, $p_error, $p_file, $p_line, $p_context) { global $g_error_parameters, $g_error_handled, $g_error_proceed_url; global $g_lang_overrides; global $g_error_send_page_header; # check if errors were disabled with @ somewhere in this call chain if (0 == error_reporting()) { return; } $t_lang_pushed = false; $t_db_connected = false; if (function_exists('db_is_connected')) { if (db_is_connected()) { $t_db_connected = true; } } $t_html_api = false; if (function_exists('html_end')) { $t_html_api = true; } # flush any language overrides to return to user's natural default if ($t_db_connected) { lang_push(lang_get_default()); $t_lang_pushed = true; } $t_short_file = basename($p_file); $t_method_array = config_get_global('display_errors'); if (isset($t_method_array[$p_type])) { $t_method = $t_method_array[$p_type]; } else { if (isset($t_method_array[E_ALL])) { $t_method = $t_method_array[E_ALL]; } else { $t_method = 'none'; } } # build an appropriate error string switch ($p_type) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; $t_error_description = "'{$p_error}' in '{$p_file}' line {$p_line}"; break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; $t_error_description = "'{$p_error}' in '{$p_file}' line {$p_line}"; break; case E_USER_ERROR: $t_error_type = "APPLICATION ERROR #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_WARNING: $t_error_type = "APPLICATION WARNING #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; $t_error_description = $p_error; break; default: # shouldn't happen, just display the error just in case $t_error_type = ''; $t_error_description = $p_error; } $t_error_description = nl2br($t_error_description); switch ($t_method) { case 'halt': # disable any further event callbacks if (function_exists('event_clear_callbacks')) { event_clear_callbacks(); } $t_oblen = ob_get_length(); if (error_handled() && $t_oblen > 0) { $t_old_contents = ob_get_contents(); } # We need to ensure compression is off - otherwise the compression headers are output. compress_disable(); # then clean the buffer, leaving output buffering on. if ($t_oblen > 0) { ob_clean(); } # don't send the page header information if it has already been sent if ($g_error_send_page_header) { if ($t_html_api) { html_page_top1(); if ($p_error != ERROR_DB_QUERY_FAILED && $t_db_connected == true) { html_page_top2(); } else { html_page_top2a(); } } else { echo '<html><head><title>', $t_error_type, '</title></head><body>'; } } echo '<br /><div align="center"><table class="width50" cellspacing="1">'; echo '<tr><td class="form-title">', $t_error_type, '</td></tr>'; echo '<tr><td><p class="center" style="color:red">', $t_error_description, '</p></td></tr>'; echo '<tr><td><p class="center">'; if (null === $g_error_proceed_url) { echo lang_get('error_no_proceed'); } else { echo '<a href="', $g_error_proceed_url, '">', lang_get('proceed'), '</a>'; } echo '</p></td></tr>'; if (ON == config_get_global('show_detailed_errors')) { echo '<tr><td>'; error_print_details($p_file, $p_line, $p_context); echo '</td></tr>'; echo '<tr><td>'; error_print_stack_trace(); echo '</td></tr>'; } echo '</table></div>'; if (isset($t_old_contents)) { echo '<p>Previous non-fatal errors occurred. Page contents follow.</p>'; echo '<div style="border: solid 1px black;padding: 4px">'; echo $t_old_contents; echo '</div>'; } if ($t_html_api) { if ($p_error != ERROR_DB_QUERY_FAILED && $t_db_connected == true) { html_page_bottom(); } else { html_body_end(); html_end(); } } else { echo '</body></html>', "\n"; } exit; case 'inline': echo '<p style="color:red">', $t_error_type, ': ', $t_error_description, '</p>'; $g_error_handled = true; break; default: # do nothing - note we treat this as we've not handled an error, so any redirects go through. } if ($t_lang_pushed) { lang_pop(); } $g_error_parameters = array(); $g_error_proceed_url = null; }
function mc_error_handler($p_type, $p_error, $p_file, $p_line, $p_context) { global $l_oServer; # check if errors were disabled with @ somewhere in this call chain # also suppress php 5 strict warnings if (0 == error_reporting() || 2048 == $p_type) { return; } # flush any language overrides to return to user's natural default if (function_exists('db_is_connected')) { if (db_is_connected()) { lang_push(lang_get_default()); } } # build an appropriate error string switch ($p_type) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; $t_error_description = $p_error; break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; $t_error_description = $p_error; break; case E_USER_ERROR: $t_error_type = "APPLICATION ERROR #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_WARNING: $t_error_type = "APPLICATION WARNING #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; $t_error_description = $p_error; break; default: #shouldn't happen, just display the error just in case $t_error_type = ''; $t_error_description = $p_error; } $t_error_stack = error_get_stack_trace(); error_log("[mantisconnect.php] Error Type: {$t_error_type},\nError Description: {$t_error_description}\nStack Trace:\n{$t_error_stack}"); $l_oServer->fault('Server', "Error Type: {$t_error_type},\nError Description: {$t_error_description}"); $l_oServer->send_response(); exit; }
function print_sql_error($p_query) { global $g_administrator_email; print error_string(ERROR_SQL); print_email_link($g_administrator_email, lang_get('administrator')); print "<br />{$p_query};<br />"; }
/** * Default error handler * * This handler will not receive E_ERROR, E_PARSE, E_CORE_*, or E_COMPILE_* errors. * * E_USER_* are triggered by us and will contain an error constant in $p_error * The others, being system errors, will come with a string in $p_error * @param integer $p_type Contains the level of the error raised, as an integer. * @param string $p_error Contains the error message, as a string. * @param string $p_file Contains the filename that the error was raised in, as a string. * @param integer $p_line Contains the line number the error was raised at, as an integer. * @param array $p_context To the active symbol table at the point the error occurred (optional). * @return void */ function mc_error_handler($p_type, $p_error, $p_file, $p_line, array $p_context) { # check if errors were disabled with @ somewhere in this call chain # also suppress php 5 strict warnings if (0 == error_reporting() || 2048 == $p_type) { return; } # flush any language overrides to return to user's natural default if (function_exists('db_is_connected')) { if (db_is_connected()) { lang_push(lang_get_default()); } } # build an appropriate error string switch ($p_type) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; $t_error_description = $p_error; break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; $t_error_description = $p_error; break; case E_USER_ERROR: $t_error_type = 'APPLICATION ERROR #' . $p_error; $t_error_description = error_string($p_error); break; case E_USER_WARNING: $t_error_type = 'APPLICATION WARNING #' . $p_error; $t_error_description = error_string($p_error); break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; $t_error_description = $p_error; break; default: #shouldn't happen, just display the error just in case $t_error_type = ''; $t_error_description = $p_error; } $t_error_stack = error_get_stack_trace(); error_log('[mantisconnect.php] Error Type: ' . $t_error_type . ',' . "\n" . 'Error Description: ' . $t_error_description . "\n" . 'Stack Trace:' . "\n" . $t_error_stack); throw new SoapFault('Server', 'Error Type: ' . $t_error_type . ',' . "\n" . 'Error Description: ' . $t_error_description); }
# get user id $t_user_id = $f_user_id; $c_export = implode('',$t_prefs_arr); # update preferences $t_user_print_pref_table = db_get_table( 'user_print_pref' ); $query = "UPDATE $t_user_print_pref_table SET print_pref=" . db_param() . " WHERE user_id=" . db_param(); $result = db_query_bound( $query, Array( $c_export, $t_user_id ) ); form_security_purge( 'print_all_bug_options_update' ); html_page_top( null, $f_redirect_url ); echo '<br /><div>'; if ( $result ) { print lang_get( 'operation_successful' ); } else { print error_string( ERROR_GENERIC ); } echo '<br />'; print_bracket_link( $f_redirect_url, lang_get( 'proceed' ) ); echo '<br /></div>'; html_page_bottom();
# get the fields list $t_field_name_arr = get_field_names(); $field_name_count = count($t_field_name_arr); # check the checkboxes for ($i = 0; $i < $field_name_count; $i++) { $t_name = 'print_' . utf8_strtolower(str_replace(' ', '_', $t_field_name_arr[$i])); $t_flag = gpc_get($t_name, null); if ($t_flag === null) { $t_prefs_arr[$i] = 0; } else { $t_prefs_arr[$i] = 1; } } # get user id $t_user_id = $f_user_id; $c_export = implode('', $t_prefs_arr); # update preferences $t_user_print_pref_table = db_get_table('user_print_pref'); $query = "UPDATE {$t_user_print_pref_table}\n\t\tSET print_pref=" . db_param() . "\n\t\tWHERE user_id=" . db_param(); $result = db_query_bound($query, array($c_export, $t_user_id)); form_security_purge('print_all_bug_options_update'); html_page_top(null, $f_redirect_url); if ($result) { html_operation_successful($f_redirect_url); } else { echo '<div class="failure-msg">'; print error_string(ERROR_GENERIC) . '<br />'; print_bracket_link($f_redirect_url, lang_get('proceed')); echo '</div>'; } html_page_bottom();
function print_sql_error($p_query) { global $g_administrator_email; $error = error_string(ERROR_SQL); $error .= lang_get('word_separator'); $error .= sprintf(lang_get('please_report'), prepare_email_link($g_administrator_email, lang_get('administrator'))); $error .= "<br />{$p_query};<br />"; echo $error; }
<?php $GLOBALS['t_dir_emailreporting_adjust'] = dirname(__FILE__) . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR . '..' . DIRECTORY_SEPARATOR; require_once $GLOBALS['t_dir_emailreporting_adjust'] . 'core.php'; $t_basename = 'EmailReporting'; $t_pagename = 'bug_report_mail'; if (plugin_needs_upgrade($g_plugin_cache[$t_basename])) { error_parameters($t_basename); echo error_string(ERROR_PLUGIN_UPGRADE_NEEDED); exit; } // This would work but skips some important checks done in plugin.php. // For the moment this code will be disabled /* $t_pagename = 'pages/bug_report_mail.php'; plugin_push_current( $t_basename ); plugin_require_api( $t_pagename ); */ $t_tmp_plugin_page = plugin_page($t_pagename, TRUE, $t_basename); $t_tmp_plugin_page = explode('?', $t_tmp_plugin_page, 2); $t_tmp_plugin_page[1] = explode('=', $t_tmp_plugin_page[1], 2); $_GET[$t_tmp_plugin_page[1][0]] = $t_tmp_plugin_page[1][1]; require_once $GLOBALS['t_dir_emailreporting_adjust'] . $t_tmp_plugin_page[0];
function error_handler($p_type, $p_error, $p_file, $p_line, $p_context) { global $g_error_parameters, $g_error_handled, $g_error_proceed_url; global $g_lang_overrides; global $g_error_send_page_header; # check if errors were disabled with @ somewhere in this call chain # also suppress php 5 strict warnings if (0 == error_reporting() || 2048 == $p_type) { return; } $t_lang_pushed = false; # flush any language overrides to return to user's natural default if (function_exists('db_is_connected')) { if (db_is_connected()) { lang_push(lang_get_default()); $t_lang_pushed = true; } } $t_short_file = basename($p_file); $t_method_array = config_get('display_errors'); if (isset($t_method_array[$p_type])) { $t_method = $t_method_array[$p_type]; } else { $t_method = 'none'; } # build an appropriate error string switch ($p_type) { case E_WARNING: $t_error_type = 'SYSTEM WARNING'; $t_error_description = $p_error; break; case E_NOTICE: $t_error_type = 'SYSTEM NOTICE'; $t_error_description = $p_error; break; case E_USER_ERROR: $t_error_type = "APPLICATION ERROR #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_WARNING: $t_error_type = "APPLICATION WARNING #{$p_error}"; $t_error_description = error_string($p_error); break; case E_USER_NOTICE: # used for debugging $t_error_type = 'DEBUG'; $t_error_description = $p_error; break; default: #shouldn't happen, just display the error just in case $t_error_type = ''; $t_error_description = $p_error; } $t_error_description = nl2br($t_error_description); if ('halt' == $t_method) { $t_old_contents = ob_get_contents(); # ob_end_clean() still seems to call the output handler which # outputs the headers indicating compression. If we had # PHP > 4.2.0 we could use ob_clean() instead but as it is # we need to disable compression. compress_disable(); if (ob_get_length()) { ob_end_clean(); } # don't send the page header information if it has already been sent if ($g_error_send_page_header) { html_page_top1(); if ($p_error != ERROR_DB_QUERY_FAILED) { html_page_top2(); } else { html_page_top2a(); } } print '<br /><div align="center"><table class="width50" cellspacing="1">'; print "<tr><td class=\"form-title\">{$t_error_type}</td></tr>"; print "<tr><td><p class=\"center\" style=\"color:red\">{$t_error_description}</p></td></tr>"; print '<tr><td><p class="center">'; if (null === $g_error_proceed_url) { print lang_get('error_no_proceed'); } else { print "<a href=\"{$g_error_proceed_url}\">" . lang_get('proceed') . '</a>'; } print '</p></td></tr>'; if (ON == config_get('show_detailed_errors')) { print '<tr><td>'; error_print_details($p_file, $p_line, $p_context); print '</td></tr>'; print '<tr><td>'; error_print_stack_trace(); print '</td></tr>'; } print '</table></div>'; if ($g_error_handled && !is_blank($t_old_contents)) { print '<p>Previous non-fatal errors occurred. Page contents follow.</p>'; print '<div style="border: solid 1px black;padding: 4px">'; print $t_old_contents; print '</div>'; } if ($p_error != ERROR_DB_QUERY_FAILED) { html_page_bottom1(); } else { html_body_end(); html_end(); } exit; } else { if ('inline' == $t_method) { print "<p style=\"color:red\">{$t_error_type}: {$t_error_description}</p>"; } else { # do nothing } } if ($t_lang_pushed) { lang_pop(); } $g_error_parameters = array(); $g_error_handled = true; $g_error_proceed_url = null; }
/** * Schema update to install and configure new Gravatar plugin. * If the instance has enabled use of avatars, then we register the plugin * @return int 2 if successful */ function install_gravatar_plugin() { if (config_get_global('show_avatar')) { $t_avatar_plugin = 'Gravatar'; # Register and install the plugin $t_plugin = plugin_register($t_avatar_plugin, true); if (!is_null($t_plugin)) { plugin_install($t_plugin); } else { error_parameters($t_avatar_plugin); echo '<br>' . error_string(ERROR_PLUGIN_INSTALL_FAILED); return 1; } } # Return 2 because that's what ADOdb/DataDict does when things happen properly return 2; }