Меню

Opencart отключить вывод ошибок

I can’t seem to disable error reporting in PHP — I have tried everything but «Notice» errors are still displayed.

My php.ini has

display_errors = Off;
error_reporting = 0;

My .htaccess has

php_value error_reporting 0

And my script has

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;

The php_info() output confirms that display_errors and error_reporting are indeed off and 0, and yet I still get a notice,

Notice: Undefined variable: my_undefined_var in /my/site/path/index.php?blahblah…

Note this is an OpenCart website (and my change is in the Admin section). I have tried creating a test php script in the same directory as index.php and it’s fine.

Is there anything else that could be overriding the error_reporting(0) ?

I’ve done a grep of the entire site to find and disable all mentions of the error_reporting and display_errors but to no avail.

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

Как же отключить ошибки в OpenCart?

Прежде всего, вам необходимо знать, что  в OpenCart не работает отключение вывода ошибок через .htaccess

Для отключения вывода ошибок вы должны войти в админку Система > Настройки > Сервер

и отключить показ ошибок:

switch-off-errors-in-opencart

Если у вас не Opencart, а другая CMS, то вы можете использовать следующие правила в .htaccess:

# прячем публичный показ ошибок на сайте

php_flag display_startup_errors off
php_flag display_errors off
php_flag html_errors off

# включаем запись ошибок в произвольный файл (не забудьте выставить права 755 или 777 на файл лога)

php_flag  log_errors on
php_value error_log  /home/path/public_html/domain/PHP_errors.log

Не забудьте поменять на актуальный для вашего сайта путь на сервере.

Чтобы узнать актуальный для вашего сайта путь на сервере вам нужно либо обратиться к разделу поддержки на сайте вашего хостинг провайдера. Как правило, там есть эта информация.

Либо обратиться непосредственно в службу технической поддержки вашего хостера.

Если вы умеете обращаться с UNIX консолью и у вас есть доступ по протоколу SSH, то вы просто можете набрать команду pwd и узнать эту информацию.

После этого вам нужно создать файл PHP_errors.log (на самом деле, вы можете присвоить любое имя этому логу) и выставить на него права на запись – 0777.

# закрываем просмотр лога извне, т.е. по прямому URL
<Files PHP_errors.log>
Order allow,deny
Deny from all
Satisfy All
</Files>

COVID2019 и это вот все. Друзья, вся эта история начинает плохо пахнет. Мойте руки, не ходите в люди. Отложите все плановые покупки и положите в носок заначку. Заприте ваших родителей, бабушек-дедушек на даче. Лучше перебдеть чем недобдеть. Берегите себя!

  • notice: undefined offset

  • убрать отображение ошибок


manisa

  • Ответить в тему

  • Создать тему

Recommended Posts

manisa

Newbie

    • Жалоба
    • Share

Добрый день. как убрать отображение ошибок на сайте  Notice: Undefined offset: . через админ, через htaccess. php.ini проставила все коды скрыть ошибки, но также без изменения ошибки на сайте отображаются.в чем причина,как все таки убрать ошибку?

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

RHCk

Newbie

    • Жалоба
    • Share

19 минут назад, manisa сказал:

как все таки убрать ошибку?

Таки ошибки можно убрать здесь: Система — Настройки — Редактировать — Вкладка «Сервер» — Область «Обработка ошибок» — Показывать ошибки — НЕТ

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

manisa

Newbie

  • Автор
    • Жалоба
    • Share

нет я все делала, и сейчас стоит НЕТ в показывать ошибки. в том то и дело нет никакой реакции на сайте

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

manisa

Newbie

  • Это популярное сообщение.

NoOne!

Newbie

  • Это популярное сообщение.
    • Жалоба
    • Share

Если у вас есть ошибки,значит они не просто так вам были показаны.

Ищите решение проблемы,а не занимайтесь самоуспокоением :)

  • mrgeser


  • Upvote


    1

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

mrgeser

Newbie

    • Жалоба
    • Share

Скрытие ошибок — это как мусор в комнате сметать под ковер, рано или поздно споткнуться можно будет .

А так можно поставить символ @ перед неопределенной переменной, типо вот так @$var

После этого ошибка вылезать перестанет

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

manisa

Newbie

  • Автор
    • Жалоба
    • Share

Notice: Undefined offset: 1 in W:homelocalhostwwwbino_2016systempavothemeswidgetlistproduct_home3.php on line 173Notice: Undefined offset: 1 in W:homelocalhostwwwbino_2016systempavothemeswidgetlistproduct_home3.php on line 173

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

manisa

Newbie

RHCk

Newbie

    • Жалоба
    • Share

8 минут назад, manisa сказал:

как убрать

CMS? Версия? Хостинг? Шаблон? Модули?

Или по кофейной гуще?

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

manisa

Newbie

  • Автор
    • Жалоба
    • Share

это модуль pavothemes на опенкарт 2.2

вот строка 173

$s = array(‘width’ => ‘420’, ‘height’ => ‘453’, ‘product_id’ => $products[1][‘product_id’]);

            $setting[‘first_product’] = $this->getProduct($s);

            array_shift($products); // remove first element

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

RHCk

Newbie

    • Жалоба
    • Share

1 минуту назад, manisa сказал:

это модуль

3 минуты назад, RHCk сказал:

Хостинг?

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

manisa

Newbie

  • Автор
    • Жалоба
    • Share

нет хостинга, локальный

mrgeser спасибо! помогли

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

RHCk

Newbie

    • Жалоба
    • Share

5 минут назад, manisa сказал:

нет хостинга, локальный

Экспериментируйте на живом хостинге.

Большей части ошибок с локального вы не получите.

  • Цитата

Ссылка на комментарий
Поделиться на других сайтах

  • 4 years later…

yana.pichkar

Newbie

Join the conversation

You can post now and register later.

If you have an account, sign in now to post with your account.

  • Сейчас на странице

      0 пользователей

    • Нет пользователей, просматривающих эту страницу

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

0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

А вот еще интересные материалы:

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Opencart включить показ ошибок
  • Opencart включить отображение ошибок