Intereting Posts
Использование результатов одного запроса MySQL в другом запросе в PHP Envirnment WAMP Не удается получить доступ в локальной сети 403 Запрещено Как переопределить существующее количество в корзине? Лучший способ избежать отправки из-за обновления страницы Проблемы с добавлением набора столбцов базы данных в массив PHP PDO – количество строк set_error_handler Не работает Как я хочу, чтобы он работал preg_replace удалить несколько \ n Как я могу использовать различные XML-библиотеки PHP для получения DOM-подобных функций и предотвращения уязвимостей DoS, таких как Billion Laughs или Quadratic Blowup? Как использовать Wine из Apache / Php? – '/ var / www' не принадлежит вам Почему некоторые мои страницы возвращают 500s на моем сервере XAMPP? используя AJAX и JQuery для создания pdf с использованием FPDF Устранена переадресация вызова по времени Сохранение HABTM с дополнительными полями? Многомерная итерация массива

Невозможно отключить отчет об ошибках в OpenCart (PHP)

Я не могу отключить отчет об ошибках в 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 есть настройка, которая позволяет включать (или отключать) отчет об ошибках и протоколирование.

  1. Войдите в свою панель инструментов
  2. В меню перейдите в «Система» и выберите «Настройки»,
  3. В списке магазинов нажмите «Изменить» для своего магазина.
  4. Перейдите на вкладку «Сервер».
  5. Прокрутите вниз, и есть две настройки:
    а. Ошибки журнала – установите это по желанию
    б. Ошибки отображения – установите для этого параметра значение «Нет»

Поскольку @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 

Я тестировал в контроллере моего модуля. Просто чтобы отключить отображение ошибок перед вашим кодом. Это влияет только на текущий сеанс (возможно, на текущую страницу). Это не влияет на БД!