ВходПользовательПароль
   
Регистрация
Регистрация
Помощь
Помощь
Поиск
Поиск
Gosudar.com.ru  
  

Меню сайта
Навигация
Объявления Объявления
Блоги Блоги
Файловый архив Файловый архив
Последние Последние
Гостевая Гостевая
Контакты Контакты
Личный Раздел
Вход Вход
Регистрация Регистрация
Cms R3-born
Библиотека Библиотека
Файлы R3-born Файлы R3-born
Разработка(блог) Разработка(блог)
Демо-модули
Фотоальбом Фотоальбом
Новости Новости
Форум Форум

Счётчик
5601756017560175601756017
Главная » Объявления » phpbb2, r3-born msg_handler

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:
Подсветка синтаксиса : PHP
function 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 для этой записи: Трекбек

Кто онлайн
Кто онлайн
Кто онлайн Всего зарегистрированных пользователей: 404
Последний зарегистрированный пользователь: MugenEi
Сейчас посетителей на сайте: 63, из них зарегистрированных: 0, скрытых: 0, гостей: 44, ботов: 19
Больше всего посетителей (302) здесь было Июль 27 2023, 12:54
Зарегистрированные пользователи: нет
Боты : AhrefsBot (16), DotBot, Yandex (2)
Легенда: Админ, Зам.админа, ViP, Спамеры
Эти данные основаны на активности пользователей за последние пять минут

Вход
Вход
Пользователь:    Пароль:     Автоматически входить при каждом посещении     

Powered by R3-Born² © 2024
Все логотипы и торговые марки являются собственностью их законных владельцев.
Правила пользования | Полис Секретности

Valid XHTML 1.0 Transitional SPECIALIST® Online Certified PHP Specialist Valid CSS!