Я не могу отключить отчет об ошибках в PHP – я пробовал все, но ошибки «Уведомления» все еще отображаются.
Мой php.ini имеет
display_errors = Off; error_reporting = 0;
Мой .htaccess имеет
php_value error_reporting 0
И мой сценарий
ini_set('display_errors', 'Off'); ini_set('log_errors', 1); ini_set('error_reporting', 0); ini_set('display_startup_errors', 'Off'); php_info(); echo $my_undefined_var;
Выход php_info () подтверждает, что display_errors и error_reporting действительно выключены и 0, и все же я все равно получаю уведомление,
Примечание. Неопределенная переменная: my_undefined_var в /my/site/path/index.php?blahblah …
Обратите внимание, что это сайт OpenCart (и мое изменение находится в разделе «Администратор»). Я попытался создать тестовый php-скрипт в том же каталоге, что и index.php, и все в порядке.
Есть ли что-то еще, что может быть переопределение error_reporting(0)
?
Я сделал grep всего сайта, чтобы найти и отключить все упоминания об ошибках_reporting и display_errors, но безрезультатно.
На панели инструментов OpenCart есть настройка, которая позволяет включать (или отключать) отчет об ошибках и протоколирование.
Поскольку @colmde уже указывал, что OpenCart использует пользовательский error_handler.
Вы можете отключить отображение ошибок без каких-либо изменений кода (особенно файлов ядра OpenCart) с помощью:
Admin->System->Settings->[edit your configured store]->Server->Display Errors
[EDIT] Вы можете сделать то же самое, выполнив следующий запрос в базе данных OpenCart:
update setting set `value`= 1 where `key` = 'config_error_display'
OpenCart использует set_error_handler()
которая заставляет ее переопределять error_reporting(0)
.
Устранение этой проблемы устранило мою проблему.
вы можете просто использовать
ini_set('display_errors', 0);
по системе / startup.php
Истинный путь в OpenCart.
$this->config->set('config_error_display', 0); $this->processAction(); // it throws ugly warning
Я тестировал в контроллере моего модуля. Просто чтобы отключить отображение ошибок перед вашим кодом. Это влияет только на текущий сеанс (возможно, на текущую страницу). Это не влияет на БД!