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

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

Как же отключить ошибки в 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>

Вступление

К сожалению ошибки на Opencart бывают их причина не обязательно связана с неумелым администрированием. Вы вполне можете получить ошибку 500, Internal Service Error при удалении модуля или шаблона. Более часто, вы даже не увидите сообщение об ошибке, а получите «белый экран смерти», чистую страницу браузера.

Дело в том, что по умолчанию вывод ошибок системы по умолчанию отключен. Делается это из-за соображений безопасности и в рабочем состоянии вывод ошибок должен быть отключен всегда.

Включить отображение ошибок php в Opencart нужно только для отладки и исправления ошибки. После исправления показ ошибок нужно убрать.

Включить отображение ошибок php в Opencart можно несколькими способами.

Способ 1

Веб сервер Apache.

Чтобы включить показ ошибок, добавьте в конец файла .htaccess корня такие строки:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on

Напомню файл .htaccess переименовывается из коробочного файла htaccess.txt и служит для управления веб-сервером Apache.

Способ 2

(PHP 4, 5, 7)

Файл php.ini самого магазина работает, если ваш сервер разрешает пользовательские настройки над системными. Случается это не часто, но всё же.

Чтобы включить отображение ошибок php на Opencart найдите в файле php.ini строку и поменяете off на on/

display_errors = On;

Также допишите в конец файла:

error_reporting = ~E_ALL;

Команда error_reporting — задает тип ошибок отчета, значение E_ALL означает, что попадут в отчет все ошибки.

Важно, что display_errors не показывает ошибки старта PHP. Для их включения нужна директива:

display_startup_errors=On.

После исправления ошибок поменяйте On на Off и закомментируйте новые строки.

Способ 3

(PHP 4, 5, 7)

Есть вариант показать ошибки, подправив файл index.php корня. Вставьте функции включения информации (после <?php ):

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

После исправления ошибки обязательно удалите эти строчки.

Предостережения

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

Во-вторых, перед правкой перечисленных в статье файлов делайте, как минимум их копию для резерва.

Вывод

Я показал, как включить отображение ошибок php в Opencart. Какой способ сработает на практике, зависит от настроек и конфигурации вашего сервера. Не забываем, что на сервере ведется журнал log ошибок. Правда, их тоже нужно включить в директиве: log_errors=Off.

Документация

  • php.net/manual/ru/ini.list.php
  • php.net/manual/ru/function.ini-set.php
  • php.net/manual/ru/function.error-reporting.php

©opencart.life

Если после установки или удаления какого либо модуля в Opencart 3 вы видите белый (пустой) экран или надпись 500 Internal Service Error, то это означает что возникла какая-то системная ошибка php. И чтобы понять по какой причине это произошло, вам необходимо включить отображение и получить текст ошибки.

Сделать это можно несколькими способами:

1) Откройте в редакторе файл .htaccess и добавьте в конце строки:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on

2) Откройте в редакторе файл php.ini и добавьте в конце строки:

display_errors = On;
error_reporting = ~E_ALL;

3) Откройте в редакторе файл index.php и после (

ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);

После того как вы устраните причину ошибки не забудьте удалить добавленные строки.

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

Updated on Sep 8, 2016

If you experience any technical difficulties with your OpenCart 2 store it might be a good idea to enable the OpenCart 2 error reporting. These options will help you debug the issue by providing you with additional information on what exactly went wrong with your script.

OpenCart 2 supports two different options for error reporting. On the one hand, you may enable the general error reporting which will display the errors directly into your browser or you can activate the error logging which will write all errors into a file located in your OpenCart installation directory.

The inconvenience of the first method is that all of your visitors will be able to see the errors displayed on your website but see the errors directly via your browser may help you narrow down the problem.

To activate the error reporting, please login your OpenCart 2 Admin dashboard and navigate to the Settings menu.

OpenCart 2 Settings Menu

From the Store list click on the edit icon next to your store name and proceed to the Server settings tab.

Scroll to the bottom of the page and locate the Error reporting options.

OpenCart 2 Error Reporting Options

If you enable the Display Error option, your site errors will be directly visible on your website. In case you would like to have all errors logged, enable the Log Errors option and make sure you have a valid error log name.

If you enable the Log Errors option you will be able to read your error log either by directly downloading it from your OpenCart 2 root directory or via the Admin Dashboard. To access the Error log via the admin area of your OpenCart, please refer to the Error Logs section via the main navigation menu.

OpenCart 2 Error Logs

Be advised that your OpenCart error log might get quite large in case your OpenCart 2 generates a lot of warnings or errors.

Clear OpenCart 2 error log

In case you have the Log Errors option enable you should regularly check the error log and clear it via the Clear Log option.

Избавиться от Notice можно отключив вывод ошибок в Настройках. Настройки-сервер-вывод ошибок.

В некоторых случаях могут пригодится 2 волшебные строчки в .htacces для включения ошибок:

php_flag display_errors on
php_value error_reporting E_ALL


Комментарии (0)

Имя:

Электронная почта:

Разрешённые теги: <b><i><br>Добавить новый комментарий:

Юрий Янин

@VPank

Бессмертие ради знаний. Знания ради бессмертия.

Стоит opencart oс 2.2. Поставил модули pickpoint и сдэк. С горем пополам запустил их обоих. Работают на ура. Но выводят ошибки в шапку корзины. Также стоит симпла. В админке и симпле выключил вывод ошибок. Но opencart игнорирует эти инструкции и дальше выводит жалобы на currency.php Могу я что-то где-то прописать в файлах или удалить, чтобы просто не выводились ошибки?


  • Вопрос задан

    более трёх лет назад

  • 314 просмотров


Комментировать

Пригласить эксперта


Ответы на вопрос 1

Kalombyr

Вы хотя бы написали, что за ошибки.
Ну и не лучше всё таки эти ошибки исправить / нанять специалиста, который этим займётся? Ведь сообщения не просто так появляются. Совсем уж не отключайте — записывайте в лог хотя бы…


Похожие вопросы


  • Показать ещё
    Загружается…

23 июн. 2023, в 23:15

30000 руб./за проект

23 июн. 2023, в 23:10

15000 руб./за проект

23 июн. 2023, в 21:51

25000 руб./за проект

Минуточку внимания

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 пользователей

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

  • Отключить перезагрузку при критической ошибке
  • Отключить ошибки lua wow classic
  • Отключить отображение ошибок php htaccess
  • Отключить отображение ошибок joomla
  • Отключить вывод ошибок пользователям битрикс