[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Отлов E_PARSE
Гость_Дима
Прочитал о том, что обработчик set_error_handler ("my_error_handler") не может обрабатывать ошибки уровней E_ERROR, E_PARSE ... и это связанно с тем, что ошибки перечисленных уровней происходят до того, как интерпретатор получает информацию о пользовательском обработчике ошибок.
У меня же пользователь имеет возможность загружать на мой сервер свой пхп-код (вот только не надо "где ж это видано?"), который обрабатывается (на сервере же) и результат уже выдается пользователю. Беда в том, что если в коде пользователя будет ошибка, то в браузере он увидит только сообщение об этой ошибке (E_PARSE) (ну или ничего не увидит, если я на сервере отключу вывод сообщений об ошибках). Как в этом случае я могу сообщить пользователю некую дополнительную информацию (т.е. как в этом случае что-то еще я могу вывести в окне браузера)?




Спустя 56 минут, 57 секунд (17.04.2011 - 13:07) Dr.Mars написал(а):
Проверяй на ошибки через интерпретатор php с параметром -l (подробнее php --help)

Спустя 4 часа, 49 минут, 16 секунд (17.04.2011 - 17:56) Nikitian написал(а):
Делаю так

function error_handler($errorType, $message, $errfile, $errline){
throw new Exception( strip_tags($message).' in ['.$errfile.'] on '.$errline.' line', $errorType);
}
function fatalErrorShutdownHandler() {
$last_error = error_get_last();
if ($last_error['type'] === E_ERROR) {
// fatal error
error_handler(E_ERROR, $last_error['message'], $last_error['file'], $last_error['line']);
}
}

set_error_handler('error_handler');
register_shutdown_function('fatalErrorShutdownHandler');
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.