error_reporting - просмотр состояния.

Royal Flash

-=MaestrO=-
error_reporting - просмотр состояния.

В отладочной версии скрипта, установлено error_reporting(E_ALL), в версии для пользователей, соотвественно, error_reporting(E_NONE). Как узнать состояние вывода, или не вывода ошибок?

Если известно состояние вывода ошибок, можно сделать так: если произошла ошибка соединения с базой в процессе отладки - выводится сообщение об ошибке mysql ( echo mysql_error()), иначе, выводится сообщение: echo "база не доступна".
 

Фанат

oncle terrible
Команда форума
E_ALL должно быть всегда
а для показывать-не показывать, существует своя настройка
 

Royal Flash

-=MaestrO=-
Фанат
Согласен. Только может я не ясно выразил суть вопроса...

Ошибки запрса mysql можно вывести только при помощи mysql_error(), например "Table 'base.tableX' doesn't exist" Так вот, в случае, если скрипт в работе, такое сообщение посетителю выводить никчему... А вот если в отладке - очень даже не мешает его увидеть.
Отладочная версия отличается от рабочей тем, что в ней все ошибки должны выводиться на экран, для облегчения нахождения этой самой ошибки.

Вопрос такой: как определить в скрипте, что error_reporting(E_NONE)?
 

Denix

Новичок
ini_set("display_errors", "1");

А вообще, было в каком-то номере phpInside. Вобщем ты определяй какой у тебя режим установлен (к примеру, define('DEBUG_MODE', '1') - для локальной версии) и в зависимости от этого делай либо echo mysql_error() - либо запись в лог.
 

Фанат

oncle terrible
Команда форума
Royal Flash
Вот люблю я такие ответы.
страсть, как люблю.

сначала пишется, что "Да, согласен. Со всем согласен!"
А потом задаётся вопрос на ту же самую тему!

Ещё раз повторяю:
E_ALL должно быть всегда
Следовательно, твой вопрос не имеет смысла!
Определять error_reporting(E_NONE) не может понадобиться никогда, полькольку оно в таком состоянии никогда не бывает!

Подробнее - иди читай фак дебаг.

-~{}~ 14.03.06 09:11:

SiMM
Да не это ему надо.
Ему всего-то надо в обработчике ошибок мускуля узнать - показывать ошибку на экран, или нет.

-~{}~ 14.03.06 09:12:

Denix
Не нужна никакая специальная константа.
Сообразительному разработчику хватит встроенных средств.
 

SiMM

Новичок
> Да не это ему надо.
Да ХЗ, предположил, что человек хочет, чтобы вывод ошибок в браузер можно было легко отключать. При этом вывод этих же ошибок в логи - возможно даже приветствуется.
 

Royal Flash

-=MaestrO=-
SiMM
При этом вывод этих же ошибок в логи - возможно даже приветствуется.
Именно. Если ошибка не выводится на экран - пишется в лог.
Фанат
E_ALL должно быть всегда
Подробнее - иди читай фак дебаг.
http://phpclub.ru/faq/wakka.php?wakka=DebugScripts&v=cfx
В факе в примере: error_reporting(0); То же что error_reporting(E_NONE);
Denix
Зачем создавать лишние константы?

Нашел следующие решение:
PHP:
if (ini_get("error_reporting") == 2047)
2047 = E_ALL. Т.е. если error_reporting(E_ALL) - выводим mysql_error на екран, иначе пишем в лог.
Минус этого решения - не везде возможно прочитать настройки INI
 

Фанат

oncle terrible
Команда форума
E_ALL должно быть всегда
а за ОТОБРАЖЕНИЕ ошибок отвечает display_errors
 

Фанат

oncle terrible
Команда форума
ну да, ну да
в факе ты прочесть самостоятельно об этом никак не мог.
 
Сверху