Старый 04.03.2013, 22:46 #1 (Ссылка)
Аватар для Ночная странница
Профи
 
Регистрация: 30.01.2012
Моя смс: Нельзя сказать, что я пользуюсь какой-то одной, прошла все, от vB и XenForo до WordPress и OpenCart.
Возраст: 41
Сообщений: 1,861
Записей в дневнике: 6
Сказал(а) спасибо: 1,134
Поблагодарили 982 раз(а) в 591 сообщениях
Репутация: 1138
Ночная странница Ночная странница вне форума
Профи
Дополнительная информация
По умолчанию

Управление отображением ошибок PHP


Вообще-то тема правильно должна называться «Директивы контроля ошибок», но поскольку профессионалам эта информация давно известна, а новичкам такое название темы мало что сообщит, статья названа так, как названа. Изложенный материал в основном рассматривается применительно к форумам vBulletin.

Практически всем админам рано или поздно приходится сталкиваться на своем форуме с ошибками PHP, которые могут выглядеть по разному, начиная с банального «Deprecated: Assigning the return value…» и заканчивая какими-нибудь редкими проблемами с тем или иным хаком. Я хочу рассказать о том, как взять под контроль вывод ошибок, настроить сервер так, чтобы все ошибки выводились сразу в браузер (на этапе отладки) или не выводились вообще. А, может быть, вам удобнее, если они будут записываться в файл?
Управляем этим процессом с помощью директив в в файлах php.ini или .htaccess (зависит от ваших предпочтений и предпочтений хостера, у меня на одном из хостингов написано, что лучше использовать php.ini, а на другом я пользуюсь исключительно файлами .htaccess).


Вопрос 1.
Куда должны выводиться сообщения об ошибках?


1.1. Ваш форум недавно установлен, пользователей еще нет, вы заняты тем, что устанавливаете хаки и разрабатываете дизайн.
В данном случае целесообразно разрешить вывод ошибок сразу в браузер, так как этим вы никого не напугаете, а сами сразу увидите, что они есть.

display_errors on
Это включает отображение ошибок в том браузере, который запустил скрипт.
Соответственно, если вы видите, что у вас в одном из этих файлов прописано
display_errors off
вы уже понимаете, что отображения ошибок в браузере не будет.

1.2. Ваш форум открыт для пользователей, но вы не собираетесь, как страус, прятать голову в песок, и хотите видеть, если когда-то и где-то возникают ошибки.

Ну что ж, тогда вам лучше всего записывать ошибки в файл. Помимо стандартной функции в админке vBulletin, есть еще такая возможность для php.ini или .htaccess:

display_errors off
log_errors on


Что это даст? В браузере ошибки отображаться не будут, но в файл запишутся.
Какой файл? Это тоже можно и нужно указать:

error_log абсолютный путь к файлу

Вопрос 2.
Какие сообщения об ошибках должны выводиться, а какие - нет?


Хороший вопрос. На сайте php.net вы можете посмотреть различные варианты констант, на практике же рекомендуют использовать следующие из них:

(Записывается в файлы как error_reporting константа)

error_reporting E_ALL~E_NOTICE
Такое значение обычно стоит в php.ini на Денвере и означает (сверяемся с таблицей) полный контроль, кроме некритичных предупреждений интерпретатора.

error_reporting E_ALL
Такое значение хорошо при отладке, но может вызвать целый ряд разнообразных предупреждений, которые будут нервировать неопытного администратора.

error_reporting(0)
Выключение протоколирования ошибок

Выбирайте, что вам важно и нужно, настраивайте на свой вкус.

Важное примечание: в скриптах vBulletin (практически во всех) установлен режим вывода ошибок, и, как правило, E_NOTICE там выключен. То есть, перепрописывание этого правила на уровне .htaccess может и не дать желаемого результата.

Вот еще полезные ссылки по этой теме:

Использование функции error_reporting с примерами, изменения в константах в зависимости от версий PHP

Настройки конфигурации протоколирования событий и ошибок

Авторские права
Статья написана для двух проектов - vbsupport.org и wmboard.net, копирование на другие ресурсы без указания источника… не приветствуется.
Автор: Ночная странница
Замечания и поправки: Льюви

Миниатюры
Управление отображением ошибок PHP-code.jpg  

Последний раз редактировалось Veter; 04.03.2013 в 23:13. Причина: ред
Ночная странница вне форума   Ответить с цитированиемОтветить с цитированием
6 пользователя(ей) сказали cпасибо:
Helenka (04.03.2013), lukamal (05.03.2013), Mister (04.03.2013), Sayf (05.03.2013), Veter (04.03.2013), Льюви (04.03.2013)

Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Вкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема с отображением подразделов на vBulletin 4.х.х AZyrianov vBulletin 4.x.x 1 28.12.2012 13:10
Десять ошибок оптимизатора Veter В помощь вебмастеру 0 05.10.2012 20:54
Управление скоростью кулеров Lana_Bu Проблемы с железом 4 25.05.2010 12:23


Текущее время: 16:23. Часовой пояс GMT +3.

Powered by vBulletin®
Copyright ©2000 - 2017, WMboard.
Перевод: zCarot
 

Форум вебмастеров

Здесь делают сайты, учатся на них зарабатывать. Ты новичёк, и ничего не понимаешь в создании сайтов и в интернет заработке? Не знаешь ответа на вопрос по сайтостроению? Мучают вопросы сео оптимизации?

Не беда, присоединяйся к сообществу вебмастеров, и зарабатывай вместе с нами!