Zeile 136 | Zeile 136 |
---|
/** * Parses a error for processing. *
|
/** * Parses a error for processing. *
|
* @param string The error type (i.e. E_ERROR, E_FATAL) * @param string The error message * @param string The error file * @param integer The error line
| * @param string $type The error type (i.e. E_ERROR, E_FATAL) * @param string $message The error message * @param string $file The error file * @param integer $line The error line
|
* @return boolean True if parsing was a success, otherwise assume a error */ function error($type, $message, $file=null, $line=0)
| * @return boolean True if parsing was a success, otherwise assume a error */ function error($type, $message, $file=null, $line=0)
|
Zeile 165 | Zeile 165 |
---|
$accepted_error_types = array('both', 'error', 'warning', 'none'); if(!in_array($mybb->settings['errortypemedium'], $accepted_error_types)) {
|
$accepted_error_types = array('both', 'error', 'warning', 'none'); if(!in_array($mybb->settings['errortypemedium'], $accepted_error_types)) {
|
$mybb->settings['errortypemedium'] = "both";
| $mybb->settings['errortypemedium'] = "none";
|
}
if(defined("IN_TASK"))
| }
if(defined("IN_TASK"))
|
Zeile 174 | Zeile 174 |
---|
require_once MYBB_ROOT."inc/functions_task.php";
|
require_once MYBB_ROOT."inc/functions_task.php";
|
| $filestr = '';
|
if($file) { $filestr = " - Line: $line - File: $file";
| if($file) { $filestr = " - Line: $line - File: $file";
|
Zeile 237 | Zeile 238 |
---|
/** * Returns all the warnings *
|
/** * Returns all the warnings *
|
* @return string The warnings
| * @return string|bool The warnings or false if no warnings exist
|
*/ function show_warnings() {
| */ function show_warnings() {
|
Zeile 275 | Zeile 276 |
---|
$template_exists = true; }
|
$template_exists = true; }
|
| $warning = '';
|
if($template_exists == true) { eval("\$warning = \"".$templates->get("php_warnings")."\";");
| if($template_exists == true) { eval("\$warning = \"".$templates->get("php_warnings")."\";");
|
Zeile 287 | Zeile 289 |
---|
* Triggers a user created error * Example: $error_handler->trigger("Some Warning", E_USER_ERROR); *
|
* Triggers a user created error * Example: $error_handler->trigger("Some Warning", E_USER_ERROR); *
|
* @param string Message * @param string Type
| * @param string $message Message * @param string|int $type Type
|
*/ function trigger($message="", $type=E_USER_ERROR) {
| */ function trigger($message="", $type=E_USER_ERROR) {
|
Zeile 312 | Zeile 314 |
---|
/** * Logs the error in the specified error log file. *
|
/** * Logs the error in the specified error log file. *
|
* @param string Warning type * @param string Warning message * @param string Warning file * @param integer Warning line
| * @param string $type Warning type * @param string $message Warning message * @param string $file Warning file * @param integer $line Warning line
|
*/ function log_error($type, $message, $file, $line) {
| */ function log_error($type, $message, $file, $line) {
|
Zeile 325 | Zeile 327 |
---|
{ $message = "SQL Error: {$message['error_no']} - {$message['error']}\nQuery: {$message['query']}"; }
|
{ $message = "SQL Error: {$message['error_no']} - {$message['error']}\nQuery: {$message['query']}"; }
|
| // Do not log something that might be executable $message = str_replace('<?', '< ?', $message);
$back_trace = $this->generate_backtrace(false, 2);
if($back_trace) { $back_trace = "\t<back_trace>{$back_trace}</back_trace>\n"; }
|
$error_data = "<error>\n"; $error_data .= "\t<dateline>".TIME_NOW."</dateline>\n"; $error_data .= "\t<script>".$file."</script>\n";
| $error_data = "<error>\n"; $error_data .= "\t<dateline>".TIME_NOW."</dateline>\n"; $error_data .= "\t<script>".$file."</script>\n";
|
Zeile 332 | Zeile 345 |
---|
$error_data .= "\t<type>".$type."</type>\n"; $error_data .= "\t<friendly_type>".$this->error_types[$type]."</friendly_type>\n"; $error_data .= "\t<message>".$message."</message>\n";
|
$error_data .= "\t<type>".$type."</type>\n"; $error_data .= "\t<friendly_type>".$this->error_types[$type]."</friendly_type>\n"; $error_data .= "\t<message>".$message."</message>\n";
|
| $error_data .= $back_trace;
|
$error_data .= "</error>\n\n";
if(trim($mybb->settings['errorloglocation']) != "")
| $error_data .= "</error>\n\n";
if(trim($mybb->settings['errorloglocation']) != "")
|
Zeile 347 | Zeile 361 |
---|
/** * Emails the error in the specified error log file. *
|
/** * Emails the error in the specified error log file. *
|
* @param string Warning type * @param string Warning message * @param string Warning file * @param integer Warning line
| * @param string $type Warning type * @param string $message Warning message * @param string $file Warning file * @param integer $line Warning line * @return bool returns false if no admin email is set
|
*/ function email_error($type, $message, $file, $line) {
| */ function email_error($type, $message, $file, $line) {
|
Zeile 359 | Zeile 374 |
---|
if(!$mybb->settings['adminemail']) { return false;
|
if(!$mybb->settings['adminemail']) { return false;
|
}
| }
|
if($type == MYBB_SQL)
|
if($type == MYBB_SQL)
|
{
| {
|
$message = "SQL Error: {$message['error_no']} - {$message['error']}\nQuery: {$message['query']}";
|
$message = "SQL Error: {$message['error_no']} - {$message['error']}\nQuery: {$message['query']}";
|
}
$message = "Your copy of MyBB running on {$mybb->settings['bbname']} ({$mybb->settings['bburl']}) has experienced an error. Details of the error include:\n---\nType: $type\nFile: $file (Line no. $line)\nMessage\n$message";
| }
if(function_exists('debug_backtrace')) { ob_start(); debug_print_backtrace(); $trace = ob_get_contents(); ob_end_clean();
$back_trace = "\nBack Trace: {$trace}"; } else { $back_trace = ''; }
$message = "Your copy of MyBB running on {$mybb->settings['bbname']} ({$mybb->settings['bburl']}) has experienced an error. Details of the error include:\n---\nType: $type\nFile: $file (Line no. $line)\nMessage\n$message{$back_trace}";
|
@my_mail($mybb->settings['adminemail'], "MyBB error on {$mybb->settings['bbname']}", $message, $mybb->settings['adminemail']);
|
@my_mail($mybb->settings['adminemail'], "MyBB error on {$mybb->settings['bbname']}", $message, $mybb->settings['adminemail']);
|
| return true;
|
}
|
}
|
| /** * @param string $type * @param string $message * @param string $file * @param int $line */
|
function output_error($type, $message, $file, $line) {
|
function output_error($type, $message, $file, $line) {
|
global $mybb, $parser;
| global $mybb, $parser, $lang;
|
if(!$mybb->settings['bbname']) { $mybb->settings['bbname'] = "MyBB"; }
|
if(!$mybb->settings['bbname']) { $mybb->settings['bbname'] = "MyBB"; }
|
|
|
if($type == MYBB_SQL) { $title = "MyBB SQL Error";
| if($type == MYBB_SQL) { $title = "MyBB SQL Error";
|
Zeile 423 | Zeile 460 |
---|
if(isset($code_pre[$line-3])) { $code .= $line-2 . ". ".$code_pre[$line-3];
|
if(isset($code_pre[$line-3])) { $code .= $line-2 . ". ".$code_pre[$line-3];
|
}
| }
|
if(isset($code_pre[$line-2])) {
| if(isset($code_pre[$line-2])) {
|
Zeile 483 | Zeile 520 |
---|
$error_message .= "<dt>Backtrace:</dt><dd>{$backtrace}</dd>\n"; } $error_message .= "</dl>\n";
|
$error_message .= "<dt>Backtrace:</dt><dd>{$backtrace}</dd>\n"; } $error_message .= "</dl>\n";
|
} }
| } }
|
if(isset($lang->settings['charset']))
|
if(isset($lang->settings['charset']))
|
{
| {
|
$charset = $lang->settings['charset'];
|
$charset = $lang->settings['charset'];
|
}
| }
|
else
|
else
|
{
| {
|
$charset = 'UTF-8'; }
|
$charset = 'UTF-8'; }
|
| $contact_site_owner = ''; $is_in_contact = defined('THIS_SCRIPT') && THIS_SCRIPT === 'contact.php'; if(!$is_in_contact && ($mybb->settings['contactlink'] == "contact.php" && $mybb->settings['contact'] == 1 && ($mybb->settings['contact_guests'] != 1 && $mybb->user['uid'] == 0 || $mybb->user['uid'] > 0)) || $mybb->settings['contactlink'] != "contact.php") { if(!my_validate_url($mybb->settings['contactlink'], true, true) && my_substr($mybb->settings['contactlink'], 0, 7) != 'mailto:') { $mybb->settings['contactlink'] = $mybb->settings['bburl'].'/'.$mybb->settings['contactlink']; }
$contact_site_owner = <<<HTML If this problem persists, please <a href="{$mybb->settings['contactlink']}">contact the site owner</a>. HTML; }
$contact = <<<HTML <p> <strong>If you're a visitor of this website</strong>, please wait a few minutes and try again.{$contact_site_owner} </p>
<p> <strong>If you are the site owner</strong>, please check the <a href="https://docs.mybb.com">MyBB Documentation</a> for help resolving <a href="https://docs.mybb.com/1.8/faq/">common issues</a>, or get technical help on the <a href="https://community.mybb.com/">MyBB Community Forums</a>. </p> HTML;
|
if(!headers_sent() && !defined("IN_INSTALL") && !defined("IN_UPGRADE")) {
| if(!headers_sent() && !defined("IN_INSTALL") && !defined("IN_UPGRADE")) {
|
Zeile 501 | Zeile 562 |
---|
@header('Status: 503 Service Temporarily Unavailable'); @header('Retry-After: 1800'); @header("Content-type: text/html; charset={$charset}");
|
@header('Status: 503 Service Temporarily Unavailable'); @header('Retry-After: 1800'); @header("Content-type: text/html; charset={$charset}");
|
$_SERVER['PHP_SELF'] = htmlspecialchars_uni($_SERVER['PHP_SELF']);
| $file_name = htmlspecialchars_uni(basename($_SERVER['SCRIPT_FILENAME']));
|
echo <<<EOF <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
| echo <<<EOF <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
|
Zeile 515 | Zeile 576 |
---|
a:visited { color: #026CB1; text-decoration: none; } a:hover, a:active { color: #000; text-decoration: underline; } #container { width: 600px; padding: 20px; background: #fff; border: 1px solid #e4e4e4; margin: 100px auto; text-align: left; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; }
|
a:visited { color: #026CB1; text-decoration: none; } a:hover, a:active { color: #000; text-decoration: underline; } #container { width: 600px; padding: 20px; background: #fff; border: 1px solid #e4e4e4; margin: 100px auto; text-align: left; -moz-border-radius: 6px; -webkit-border-radius: 6px; border-radius: 6px; }
|
h1 { margin: 0; background: url({$_SERVER['PHP_SELF']}?action=mybb_logo) no-repeat; height: 82px; width: 248px; }
| h1 { margin: 0; background: url({$file_name}?action=mybb_logo) no-repeat; height: 82px; width: 248px; }
|
#content { border: 1px solid #026CB1; background: #fff; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; } h2 { font-size: 12px; padding: 4px; background: #026CB1; color: #fff; margin: 0; } .invisible { display: none; }
| #content { border: 1px solid #026CB1; background: #fff; -moz-border-radius: 3px; -webkit-border-radius: 3px; border-radius: 3px; } h2 { font-size: 12px; padding: 4px; background: #026CB1; color: #fff; margin: 0; } .invisible { display: none; }
|
Zeile 527 | Zeile 588 |
---|
<body> <div id="container"> <div id="logo">
|
<body> <div id="container"> <div id="logo">
|
<h1><a href="http://www.mybb.com/" title="MyBB"><span class="invisible">MyBB</span></a></h1>
| <h1><a href="https://mybb.com/" title="MyBB"><span class="invisible">MyBB</span></a></h1>
|
</div>
<div id="content">
| </div>
<div id="content">
|
Zeile 535 | Zeile 596 |
---|
<div id="error"> {$error_message}
|
<div id="error"> {$error_message}
|
<p id="footer">Please contact the <a href="http://www.mybb.com">MyBB Group</a> for technical support.</p>
| <p id="footer">{$contact}</p>
|
</div> </div> </div>
| </div> </div> </div>
|
Zeile 560 | Zeile 621 |
---|
<h2>{$title}</h2> <div id="mybb_error_error"> {$error_message}
|
<h2>{$title}</h2> <div id="mybb_error_error"> {$error_message}
|
<p id="mybb_error_footer">Please contact the <a href="http://www.mybb.com">MyBB Group</a> for technical support.</p>
| <p id="mybb_error_footer">{$contact}</p>
|
</div> </div> EOF;
| </div> </div> EOF;
|
Zeile 573 | Zeile 634 |
---|
* * @return string The generated backtrace */
|
* * @return string The generated backtrace */
|
function generate_backtrace()
| function generate_backtrace($html=true, $strip=1)
|
{
|
{
|
| $backtrace = '';
|
if(function_exists("debug_backtrace")) {
|
if(function_exists("debug_backtrace")) {
|
$trace = debug_backtrace(); $backtrace = "<table style=\"width: 100%; margin: 10px 0; border: 1px solid #aaa; border-collapse: collapse; border-bottom: 0;\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"; $backtrace .= "<thead><tr>\n"; $backtrace .= "<th style=\"border-bottom: 1px solid #aaa; background: #ccc; padding: 4px; text-align: left; font-size: 11px;\">File</th>\n"; $backtrace .= "<th style=\"border-bottom: 1px solid #aaa; background: #ccc; padding: 4px; text-align: left; font-size: 11px;\">Line</th>\n"; $backtrace .= "<th style=\"border-bottom: 1px solid #aaa; background: #ccc; padding: 4px; text-align: left; font-size: 11px;\">Function</th>\n"; $backtrace .= "</tr></thead>\n<tbody>\n";
// Strip off this function from trace array_shift($trace);
| $trace = debug_backtrace(1<<1 /* DEBUG_BACKTRACE_IGNORE_ARGS */);
if($html) { $backtrace = "<table style=\"width: 100%; margin: 10px 0; border: 1px solid #aaa; border-collapse: collapse; border-bottom: 0;\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\">\n"; $backtrace .= "<thead><tr>\n"; $backtrace .= "<th style=\"border-bottom: 1px solid #aaa; background: #ccc; padding: 4px; text-align: left; font-size: 11px;\">File</th>\n"; $backtrace .= "<th style=\"border-bottom: 1px solid #aaa; background: #ccc; padding: 4px; text-align: left; font-size: 11px;\">Line</th>\n"; $backtrace .= "<th style=\"border-bottom: 1px solid #aaa; background: #ccc; padding: 4px; text-align: left; font-size: 11px;\">Function</th>\n"; $backtrace .= "</tr></thead>\n<tbody>\n"; }
// Strip off calls from trace $trace = array_slice($trace, $strip);
$i = 0;
|
foreach($trace as $call)
|
foreach($trace as $call)
|
{
| {
|
if(empty($call['file'])) $call['file'] = "[PHP]";
|
if(empty($call['file'])) $call['file'] = "[PHP]";
|
if(empty($call['line'])) $call['line'] = " ";
| if(empty($call['line'])) $call['line'] = " ";
|
if(!empty($call['class'])) $call['function'] = $call['class'].$call['type'].$call['function']; $call['file'] = str_replace(MYBB_ROOT, "/", $call['file']);
|
if(!empty($call['class'])) $call['function'] = $call['class'].$call['type'].$call['function']; $call['file'] = str_replace(MYBB_ROOT, "/", $call['file']);
|
$backtrace .= "<tr>\n"; $backtrace .= "<td style=\"font-size: 11px; padding: 4px; border-bottom: 1px solid #ccc;\">{$call['file']}</td>\n"; $backtrace .= "<td style=\"font-size: 11px; padding: 4px; border-bottom: 1px solid #ccc;\">{$call['line']}</td>\n"; $backtrace .= "<td style=\"font-size: 11px; padding: 4px; border-bottom: 1px solid #ccc;\">{$call['function']}</td>\n"; $backtrace .= "</tr>\n";
| if($html) { $backtrace .= "<tr>\n"; $backtrace .= "<td style=\"font-size: 11px; padding: 4px; border-bottom: 1px solid #ccc;\">{$call['file']}</td>\n"; $backtrace .= "<td style=\"font-size: 11px; padding: 4px; border-bottom: 1px solid #ccc;\">{$call['line']}</td>\n"; $backtrace .= "<td style=\"font-size: 11px; padding: 4px; border-bottom: 1px solid #ccc;\">{$call['function']}</td>\n"; $backtrace .= "</tr>\n"; } else { $backtrace .= "#{$i} {$call['function']}() called at [{$call['file']}:{$call['line']}]\n"; }
$i++; }
if($html) { $backtrace .= "</tbody></table>\n";
|
}
|
}
|
$backtrace .= "</tbody></table>\n";
| |
} return $backtrace; }
| } return $backtrace; }
|