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
Для отключения вывода ошибок вы должны войти в админку Система > Настройки > Сервер
и отключить показ ошибок:

Если у вас не 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
-
убрать отображение ошибок
-
Ответить в тему
-
Создать тему
Recommended Posts
-
- Жалоба
- Share
Добрый день. как убрать отображение ошибок на сайте Notice: Undefined offset: . через админ, через htaccess. php.ini проставила все коды скрыть ошибки, но также без изменения ошибки на сайте отображаются.в чем причина,как все таки убрать ошибку?
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
![]()
-
- Жалоба
- Share
19 минут назад, manisa сказал:
как все таки убрать ошибку?
Таки ошибки можно убрать здесь: Система — Настройки — Редактировать — Вкладка «Сервер» — Область «Обработка ошибок» — Показывать ошибки — НЕТ
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
- Автор
-
- Жалоба
- Share
нет я все делала, и сейчас стоит НЕТ в показывать ошибки. в том то и дело нет никакой реакции на сайте
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
- Это популярное сообщение.
![]()
- Это популярное сообщение.
-
- Жалоба
- Share
Если у вас есть ошибки,значит они не просто так вам были показаны.
Ищите решение проблемы,а не занимайтесь самоуспокоением ![]()
-
mrgeser
-

1
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
![]()
-
- Жалоба
- Share
Скрытие ошибок — это как мусор в комнате сметать под ковер, рано или поздно споткнуться можно будет .
А так можно поставить символ @ перед неопределенной переменной, типо вот так @$var
После этого ошибка вылезать перестанет
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
- Автор
-
- Жалоба
- 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
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
![]()
-
- Жалоба
- Share
8 минут назад, manisa сказал:
как убрать
CMS? Версия? Хостинг? Шаблон? Модули?
Или по кофейной гуще?
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
- Автор
-
- Жалоба
- 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
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
![]()
-
- Жалоба
- Share
1 минуту назад, manisa сказал:
это модуль
3 минуты назад, RHCk сказал:
Хостинг?
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
- Автор
-
- Жалоба
- Share
нет хостинга, локальный
mrgeser спасибо! помогли
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
![]()
-
- Жалоба
- Share
5 минут назад, manisa сказал:
нет хостинга, локальный
Экспериментируйте на живом хостинге.
Большей части ошибок с локального вы не получите.
- Цитата
Ссылка на комментарий
Поделиться на других сайтах
- 4 years later…
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, но безрезультатно.