Как отключить уведомления PHP?



Notice: Constant DIR_FS_CATALOG already defined


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



как сделать PHP, чтобы не выводить такие вещи в браузеры?



обновление



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



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



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

799   14  

14 ответов:

вы можете установить display_errors до 0 или использовать error_reporting()

из документации PHP (error_reporting):

<?php
// Turn off all error reporting
error_reporting(0);
?>

другие интересные опции для этой функции:

<?php

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
// This is the default value set in php.ini
error_reporting(E_ALL & ~E_NOTICE);
// For PHP < 5.3 use: E_ALL ^ E_NOTICE

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

для командной строки php, set

error_reporting = E_ALL & ~E_NOTICE

на /etc/php5/cli/php.ini

команда php выполнение затем оммит уведомления.

<?php

// Turn off all error reporting
error_reporting(0);

// Report simple running errors
error_reporting(E_ERROR | E_WARNING | E_PARSE);

// Reporting E_NOTICE can be good too (to report uninitialized
// variables or catch variable name misspellings ...)
error_reporting(E_ERROR | E_WARNING | E_PARSE | E_NOTICE);

// Report all errors except E_NOTICE
error_reporting(E_ALL & ~E_NOTICE);

// Report all PHP errors (see changelog)
error_reporting(E_ALL);

// Report all PHP errors
error_reporting(-1);

// Same as error_reporting(E_ALL);
ini_set('error_reporting', E_ALL);

?>

источник http://php.net/manual/en/function.error-reporting.php

Использовал Эту Строку В Коде

error_reporting(E_ALL ^ E_NOTICE);  

Я думаю, что его helf полный для вас.

Вы можете установить ini_set('display_errors',0); в свой сценарий или определить, какие ошибки вы хотите отобразить с error_reporting().

не вызывая ошибки:

defined('DIR_FS_CATALOG') || define('DIR_FS_CATALOG', 'whatever');

Если вам действительно нужно, то измените отчет об ошибках с помощью error_reporting () на E_ALL^E_NOTICE.

вы ищете:

php -d error_reporting="E_ERROR | E_WARNING | E_PARSE"

для PHP кода:

<?php
error_reporting(E_ALL & ~E_NOTICE);

на php.ini config:

error_reporting = E_ALL & ~E_NOTICE

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

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

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

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

также обратите внимание, что, хотя вы можете установить display_errors во время выполнения, изменение его здесь не влияет на фатальные ошибки.

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

Я нашел этот трюк недавно. Огреть @ в начале строки, Что может вызвать ошибки.

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

используйте 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

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

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

display_errors = Off

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

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

Comments

    Ничего не найдено.