2013-06-05 3 views
4

Я не могу отключить отчет об ошибках в PHP - я пробовал все, но ошибки «Уведомления» все еще отображаются.Невозможно отключить отчет об ошибках в OpenCart (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, и все же я все еще получаю уведомление,

Примечание: Undefined переменной: my_undefined_var в /my/site/path/index.php?blahblah ...

Примечание это сайт OpenCart (и мое изменение находится в разделе Администрирование). Я попытался создать тестовый php-скрипт в том же каталоге, что и index.php, и все в порядке.

Есть ли что-нибудь еще, что может быть переопределение error_reporting(0)?

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

+0

Какой смысл устанавливать log_errors в 1? Что вы хотите зарегистрировать? –

+0

Кроме того, название заставляет меня дрожать естественным образом. –

+0

Я не хочу ничего регистрировать ... Я читал на другом форуме, чтобы отключить отображение ошибок, возможно, вам нужно включить регистрацию ошибок - для меня это не имеет смысла, но я нахожусь в точке, где я попробую что-нибудь. Но если я его выберу, это не имеет значения. – colmde

ответ

22

В панели управления OpenCart есть настройка, которая позволяет включать (или выключать) отчет об ошибках и протоколирование.

  1. Вход в панели управления
  2. В меню выберите «System» и выберите «Настройки»
  3. В списке магазинов, для вашего магазина
  4. нажмите кнопку «Изменить» Нажмите «Server ".
  5. Прокрутите вниз, и есть две настройки:
    a.Ошибки журнала - установите это по своему усмотрению
    b. Ошибки отображения - установите это на «Нет»
8

OpenCart использует функцию set_error_handler(), которая заставляет ее переопределять error_reporting(0).

Снятие этой исправленной проблемы.

3

вы можете просто использовать

ini_set('display_errors', 0); 

по системе/startup.php

+0

Я хотел сделать наоборот: включите отчет об ошибках (что оказалось довольно сложным, но это работает!) – Martijn

11

Как уже отмечалось @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' 
+0

Это сработало для меня, спасибо Брату :) –

+1

Для меня работало: 0D UPDATE TABLENAME '.' oc_setting 'SET' value '=' 0 'WHERE' oc_setting '.' setting_id '= 1057; ' –

+0

Совершенно верно, и причина в том, что вы выбрали использовать префикс' oc_' для таблиц OpenCart во время установки, поэтому 'setting' turn в 'oc_setting'. – zergussino

0

Истинный путь в OpenCart.

$this->config->set('config_error_display', 0); 
$this->processAction(); // it throws ugly warning 

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

Смежные вопросы