Как отключить уведомления PHP? - PullRequest
110 голосов
/ 19 мая 2010
Notice: Constant DIR_FS_CATALOG already defined

Я уже прокомментировал display_errors в php.ini, но не работает.

Как мне заставить PHP не выводить такие вещи в браузеры?

UPDATE

Я положил display_errors = Off там, но он все еще сообщает о таких уведомлениях,

Это проблема с PHP 5.3?

Сообщение о множестве Стек вызовов тоже ..

Ответы [ 15 ]

0 голосов
/ 04 июля 2017

Как уже упоминалось, и если вы автор кода, вам следует исправить все эти ошибки, уведомления и т. Д., Потому что это вызовет у вас больше проблем в долгосрочной перспективе, чем их отсутствие (особенно при обновлении ОС). Для вашего сервера ошибки должны отображаться только в ваших журналах, а не на экране клиента.

Чтобы избежать ошибок в вашем браузере, вы используете флаг display_errors, как вы уже нашли:

display_errors = Off

Теперь настоящая проблема в том, что вы запускаете чужой код. В этом случае изменение кода, вероятно, будет перезаписываться при каждом обновлении этого кода. Поддерживать этот код утомительно.

В моем случае я запускаю PHP с crontab, чтобы время от времени запускать скрипт wp-cron.php. Я получал сообщения об ошибках на мои электронные письма, которые становятся утомительными, когда вы получаете одно электронное письмо каждые 10 минут! В этом случае, однако, система Wordpress имеет файл конфигурации, включающий WP_DEBUG, и они вызывают функцию error_reporting(), поэтому попытка изменить переменную error_reporting в командной строке не будет работать. Вместо этого вам нужно отредактировать файл wp-config.php в корневой папке и убедиться, что для WP_DEBUG установлено значение false. В противном случае вы получите все эти предупреждения и уведомления все время.

0 голосов
/ 04 февраля 2016

Используйте phpinfo () и найдите Configuration File (php.ini) Path, чтобы увидеть, какой путь к файлу конфигурации для php используется.PHP может иметь несколько конфигурационных файлов в зависимости от среды, в которой он работает.Обычно для консоли это:

/ etc / php5 / cli / php.ini

, а для php, запускаемого apache, это:

/ etc / php5 / apache2 / php.ini

А затем установите error_reporting так, как вам нужно:

http://www.phpknowhow.com/configuration/php-ini-error-settings/ http://www.zootemplate.com/news-updates/how-to-disable-notice-and-warning-in-phpini-file

0 голосов
/ 19 мая 2010

Я нашел этот трюк недавно. Ударьте @ в начале строки, которая может вызвать предупреждение / ошибку.

Как по волшебству они исчезают.

0 голосов
/ 19 мая 2010

Я считаю, что комментирование display_errors в php.ini не будет работать, потому что по умолчанию установлено значение On. Вместо этого вы должны установить «Выкл.».

Не забудьте перезапустить Apache, чтобы применить изменения конфигурации.

Также обратите внимание, что, хотя вы можете устанавливать display_errors во время выполнения, его изменение здесь не влияет на ФАТАЛЬНЫЕ ошибки.

Как отмечают другие, в идеале во время разработки вы должны работать с максимально допустимым уровнем error_reporting и включенным display_errors. Несмотря на неприятные ощущения при первом запуске, эти ошибки, предупреждения, уведомления и строгие рекомендации по кодированию складываются и позволяют вам стать лучшим кодером.

0 голосов
/ 19 мая 2010

Вы можете проверить, если константа уже определена, используя:

<?php
if (!defined('MYCONST'))
    define('MYCONST', 'Weeha!');
?>
...