|
|
Меню сайта |
|
|
Счётчик |
|
|
|
| phpbb2, r3-born msg_handler | |
phpbb2, r3-born msg_handler |
Код: | // Set PHP error handler to ours
set_error_handler(defined('R3BORN_MSG_HANDLER') ? R3BORN_MSG_HANDLER : 'msg_handler'); |
php: | Подсветка синтаксиса : PHPfunction msg_handler ($errno, $msg_text, $errfile, $errline)
{
global $cache, $db, $template, $config, $userdata, $lang;
global $msg_title, $msg_long_text;
// Do not display notices if we suppress them via @
if (error_reporting() == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE)
{
return;
}
// Message handler is stripping text. In case we need it, we are possible to define long text...
if (isset($msg_long_text) && $msg_long_text && !$msg_text)
{
$msg_text = $msg_long_text;
}
if (!defined('E_DEPRECATED'))
{
define('E_DEPRECATED', 8192);
}
switch ($errno)
{
case E_NOTICE:
case E_WARNING:
// Check the error reporting level and return if the error level does not match
// If DEBUG is defined the default level is E_ALL
if (($errno & ((defined('DEBUG')) ? E_ALL : error_reporting())) == 0)
{
return;
}
if (strpos($errfile, 'cache') === false && strpos($errfile, 'template.') === false)
{
// remove complete path to installation, with the risk of changing backslashes meant to be there
$errfile = str_replace(array(r3born_realpath (ROOT_PATH ), '\'), array('', '/'), $errfile);
$msg_text = str_replace(array(r3born_realpath(ROOT_PATH), '\ '), array('', '/'), $msg_text);
$error_name = ($errno === E_WARNING) ? 'PHP Warning ' : 'PHP Notice ';
echo '<b >[R3 -Born Debug ] ' . $error_name . '</b >: in file <b >' . $errfile . '</b > on line <b >' . $errline . '</b >: <b >' . $msg_text . '</b ><br >' . "n";
echo '<br ><br >BACKTRACE <br >' . get_backtrace() . '<br >' . "n";
}
return;
break;
case E_USER_ERROR:
if (!empty($userdata))
{
$msg_text = (!empty($lang[$msg_text])) ? $lang[$msg_text] : $msg_text;
$msg_title = (!isset($msg_title)) ? $lang['GENERAL_ERROR '] : ((!empty($lang[$msg_title])) ? $lang[$msg_title] : $msg_title);
$l_return_index = sprintf($lang['RETURN_INDEX '], '<a >', '</a >');
$l_notify = '';
if (!empty($config['board_email ']))
{
$l_notify = '<p >' . sprintf($lang['NOTIFY_ADMIN_EMAIL '], $config['board_email ']) . '</p >';
}
}
else
{
$msg_title = 'General Error ';
$l_return_index = '<a >Return to index page </a >';
$l_notify = '';
if (!empty($config['board_email ']))
{
$l_notify = '<p >Please notify the board administrator or webmaster : <a >' . $config['board_email '] . '</a ></p >';
}
}
$log_text = $msg_text;
$backtrace = get_backtrace();
if ($backtrace)
{
$log_text .= '<br ><br >BACKTRACE <br >' . $backtrace;
}
if (defined('IN_INSTALL ') || defined('DEBUG_EXTRA '))
{
$msg_text = $log_text;
}
// Do not send 200 OK, but service unavailable on errors
send_status_line(503, 'Service Unavailable ');
// Unload cache, must be done before the DB connection if closed
if (!empty($cache))
{
$cache->unload();
}
// Close our DB connection.
if (!empty($db))
{
$db->sql_close();
}
// Try to not call the adm page data...
echo '<DOCTYPE >';
echo '<html >';
echo '<head >';
echo '<meta >';
echo '<title >' . $msg_title . '</title >';
echo '<style >' . "n" . '/* <CDATA> */' . "n";
echo '</style >';
echo '</head >';
echo '<body >';
echo '<div >';
echo ' <div >';
echo ' ' . $l_return_index;
echo ' </div >';
echo ' <div >';
echo ' <div >';
echo ' <div >';
echo ' <h1 >' . $msg_title . '</h1 >';
echo ' <div >' . $msg_text . '</div >';
echo $l_notify;
echo ' </div >';
echo ' </div >';
echo ' </div >';
echo ' <div >';
echo ' Powered by <a >R3 -born² </a >';
echo ' </div >';
echo '</div >';
echo '</body >';
echo '</html >';
// On a fatal error (and E_USER_ERROR *is* fatal) we never want other scripts to continue and force an exit here.
exit;
break;
case E_USER_WARNING:
case E_USER_NOTICE:
define('IN_ERROR_HANDLER ', true);
if (empty($userdata))
{
//die('ERROR - no userdata ');
$msg_title = 'General Error ';
$l_return_index = '<a >Return to index page </a >';
$l_notify = '';
if (!empty($config['board_email ']))
{
$l_notify = '<p >Please notify the board administrator or webmaster : <a >' . $config['board_email '] . '</a ></p >';
}
echo '<DOCTYPE >';
echo '<html >';
echo '<head >';
echo '<meta >';
echo '<title >' . $msg_title . '</title >';
echo '<style >' . "n" . '/* <CDATA> */' . "n";
echo '</style >';
echo '</head >';
echo '<body >';
echo '<div >';
echo ' <div >';
echo ' ' . $l_return_index;
echo ' </div >';
echo ' <div >';
echo ' <div >';
echo ' <div >';
echo ' <h1 >' . $msg_title . '</h1 >';
echo ' <div >' . $msg_text . '</div >';
echo $l_notify;
echo ' </div >';
echo ' </div >';
echo ' </div >';
echo ' <div >';
echo ' Powered by <a >R3 -born² </a >';
echo ' </div >';
echo '</div >';
echo '</body >';
echo '</html >';
// On a fatal error (and E_USER_ERROR *is* fatal) we never want other scripts to continue and force an exit here.
exit;
}
if ($msg_text == 'ERROR_NO_ATTACHMENT ' || $msg_text == 'NO_USER ')
{
send_status_line(404, 'Not Found ');
}
$msg_text = (!empty($lang[$msg_text])) ? $lang[$msg_text] : $msg_text;
$msg_title = (!isset($msg_title)) ? $lang['INFORMATION '] : ((!empty($lang[$msg_title])) ? $lang[$msg_title] : $msg_title);
if (!defined('HEADER_INC '))
{
if (defined('IN_ADMIN ') && isset($userdata['session_admin ']) && $userdata['session_admin '])
{
page_header_admin($msg_title);
}
else
{
page_header($msg_title, false);
}
}
$template->set_filenames(array(
'body ' => 'message_body .tpl ')
);
$template->assign_vars(array(
'MESSAGE_TITLE ' => $msg_title,
'MESSAGE_TEXT ' => $msg_text,
'S_USER_WARNING ' => ($errno == E_USER_WARNING) ? true : false,
'S_USER_NOTICE ' => ($errno == E_USER_NOTICE) ? true : false)
);
//$template->pparse('body ');
// We do not want the cron script to be called on error messages
define('IN_CRON ', true);
if (defined('IN_ADMIN ') && isset($userdata['session_admin ']) && $userdata['session_admin '])
{
page_footer_admin();
}
else
{
//page_footer();
}
break;
// PHP4 compatibility
case E_DEPRECATED:
return true;
break;
}
// If we notice an error not handled here we pass this back to PHP by returning false
// This may not work for all php versions
return false;
}Parsed in 0.306 seconds, using GeSHi 1.0.8.11. Created cache - 24.11.19 21:19 |
|
Автор: Gosudar • Обновлено: • Трекбек URL для этой записи: Трекбек
|
Добавить комментарий
Необходимые поля отмечены - * В целях безопасности Ваш IP адрес будет записан.
| Кто онлайн | |
Кто онлайн |
|
Всего зарегистрированных пользователей: 406 Последний зарегистрированный пользователь: MugenEi |
Сейчас посетителей на сайте: 58, из них зарегистрированных: 0, скрытых: 0, гостей: 51, ботов: 7 Больше всего посетителей (327) здесь было Июнь 18 2024, 20:00 Зарегистрированные пользователи: нет Боты : AhrefsBot (4), IBM oBot, Google, Bing |
Легенда: Админ, Зам.админа, ViP, Спамеры |
Эти данные основаны на активности пользователей за последние пять минут |
|
|
|