Меню

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

On a remote ubuntu 18 server when opening data in phpmyadmin from one of the tables, it displays the warnings and popup window(like that https://imgur.com/a/b5HGGV0), which is very lacking …
Is there a way to ignore/hide them?

Server: Localhost via UNIX socket
Server type: MySQL
Server version: 5.7.23-0ubuntu0.18.04.1 — (Ubuntu)
Protocol version: 10
User: root@localhost
Server charset: UTF-8 Unicode (utf8)

Apache/2.4.29 (Ubuntu)
Database client version: libmysql — mysqlnd 5.0.12-dev — 20150407 — $Id: 38fea24f2847fa7519001be390c98ae0acafe387 $
PHP extension: mysqliDocumentation curlDocumentation mbstringDocumentation
PHP version: 7.2.10-0ubuntu0.18.04.1

phpMyAdmin Version information: 4.6.6deb5

Thank!

asked Oct 21, 2018 at 8:04

mstdmstd's user avatar

mstdmstdmstdmstd

55615 silver badges37 bronze badges

4

The best way to turn off Phpmyadmin errors is to go go config.inc.php and set (or comment out ie removing the // lines in front of the value, which is set to «ask» by default.)

$cfg['SendErrorReports'] = 'never';

Hit save and that’s it.

More info https://docs.phpmyadmin.net/en/latest/config.html#cfg_SendErrorReports

answered May 15, 2020 at 10:58

Rbbn's user avatar

RbbnRbbn

5776 silver badges13 bronze badges

This is a common error on this phpMyAdmin version.
To solve this open this file

sudo pico /usr/share/phpmyadmin/libraries/sql.lib.php

Find this line:

|| (count($analyzed_sql_results[‘select_expr’] == 1)

and replace with:

|| (count($analyzed_sql_results[‘select_expr’]) == 1

answered Jul 19, 2019 at 17:07

Giovani's user avatar

GiovaniGiovani

2,4301 gold badge20 silver badges15 bronze badges

2

I was just looking for the same thing.

When I ran INSERTs using the standard phpMyAdmin ‘insert’ form, rows would get inserted but a red bar would appear stating any warnings. But when I did a bulk insert, no warnings would appear and a green bar appeared instead just saying the number of rows affected (giving you the impression that it had all gone successfully, when in fact it may not have).

I found I had to send the SHOW WARNINGS command manually. For example, when running this query, I put both statements into the phpMyAdmin SQL box.

INSERT INTO test2 SELECT * FROM test1;
SHOW WARNINGS;

This gave a list of warnings like the following…

Level    Code   Message
Warning  1265   Data truncated for column 'a' at row 1
Warning  1265   Data truncated for column 'a' at row 3
Warning  1265   Data truncated for column 'b' at row 3
Warning  1366   Incorrect integer value: 'x' for column 'b' at row...

Things to note:

  • You cannot run the SHOW WARNINGS command later, it will appear empty. It must be in the box with your initial query when you click «Go». This is because MySQL only holds the warnings for the last query you ran. Every time you click a link or button phpMyAdmin runs all sorts of other queries on the DB and so your previous warnings get lost.
  • phpMyAdmin does NOT support showing multiple results from a custom query. So doing this as one SQL script does NOT work… (as of version 3.4.10.1)

    INSERT INTO test2 VALUES ('my text', 'something else');
    SHOW WARNINGS;    # you won't see the warnings from here
    INSERT INTO test2 VALUES ('my text', 'something else');
    SHOW WARNINGS;
    

    Although the method above will not work in phpMyAdmin, it SHOULD work fine in the MySQL command line client. So use that if you need to.

If you do have multiple inserts and want to show all warnings, you’ve got to chain them together as a single INSERT statement. For example:

INSERT INTO test2 VALUES 
('my text', 'something else'), 
('my text', 'something else');
SHOW WARNINGS;

I was just looking for the same thing.

When I ran INSERTs using the standard phpMyAdmin ‘insert’ form, rows would get inserted but a red bar would appear stating any warnings. But when I did a bulk insert, no warnings would appear and a green bar appeared instead just saying the number of rows affected (giving you the impression that it had all gone successfully, when in fact it may not have).

I found I had to send the SHOW WARNINGS command manually. For example, when running this query, I put both statements into the phpMyAdmin SQL box.

INSERT INTO test2 SELECT * FROM test1;
SHOW WARNINGS;

This gave a list of warnings like the following…

Level    Code   Message
Warning  1265   Data truncated for column 'a' at row 1
Warning  1265   Data truncated for column 'a' at row 3
Warning  1265   Data truncated for column 'b' at row 3
Warning  1366   Incorrect integer value: 'x' for column 'b' at row...

Things to note:

  • You cannot run the SHOW WARNINGS command later, it will appear empty. It must be in the box with your initial query when you click «Go». This is because MySQL only holds the warnings for the last query you ran. Every time you click a link or button phpMyAdmin runs all sorts of other queries on the DB and so your previous warnings get lost.
  • phpMyAdmin does NOT support showing multiple results from a custom query. So doing this as one SQL script does NOT work… (as of version 3.4.10.1)

    INSERT INTO test2 VALUES ('my text', 'something else');
    SHOW WARNINGS;    # you won't see the warnings from here
    INSERT INTO test2 VALUES ('my text', 'something else');
    SHOW WARNINGS;
    

    Although the method above will not work in phpMyAdmin, it SHOULD work fine in the MySQL command line client. So use that if you need to.

If you do have multiple inserts and want to show all warnings, you’ve got to chain them together as a single INSERT statement. For example:

INSERT INTO test2 VALUES 
('my text', 'something else'), 
('my text', 'something else');
SHOW WARNINGS;

На удаленном сервере Ubuntu 18 при открытии данных в phpmyadmin из одной из таблиц он отображает предупреждения и всплывающее окно (например, https://imgur.com/a/b5HGGV0), чего очень не хватает… Есть ли способ игнорировать/скрыть их?

Сервер: Localhost через сокет UNIX Тип сервера: MySQL Версия сервера: 5.7.23-0ubuntu0.18.04.1 — (Ubuntu) Версия протокола: 10 Пользователь: root @ localhost Кодировка сервера: UTF-8 Unicode (utf8)

Apache / 2.4.29 (Ubuntu) Версия клиента базы данных: libmysql — mysqlnd 5.0.12-dev — 20150407 — $ Id: 38fea24f2847fa7519001be390c98ae0acafe387 $ Расширение PHP: mysqliДокументация curlДокументация mbstringДокументация Версия PHP: 7.2.10-0ubuntu0.18.04.1

PhpMyAdmin Информация о версии: 4.6.6deb5

Поблагодарить!

2 ответа

Это распространенная ошибка в этой версии phpMyAdmin. Чтобы решить эту проблему, откройте этот файл

sudo pico /usr/share/phpmyadmin/libraries/sql.lib.php

Найдите эту строку:

|| (количество ($ проанализировано_sql_results [‘select_expr’] == 1)

И замените на:

|| (количество ($ проанализировано_sql_results [‘select_expr’]) == 1


11

Giovani
19 Июл 2019 в 20:07

Лучший способ отключить ошибки Phpmyadmin — это перейти в config.inc.php и установить (или закомментировать, т.е. удалить строки // перед значением, которое по умолчанию установлено на «ask»).

$cfg['SendErrorReports'] = 'never';

Нажмите «Сохранить» и все.

Дополнительная информация https://docs.phpmyadmin.net/en/latest/config.html #cfg_SendErrorReports


18

Rbbn
15 Май 2020 в 13:58

В этом руководстве мы расскажем о различных способах того, как в PHP включить вывод ошибок. Мы также обсудим, как записывать ошибки в журнал (лог).

Как быстро показать все ошибки PHP

Самый быстрый способ отобразить все ошибки и предупреждения php — добавить эти строки в файл PHP:

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

Что именно делают эти строки?

Функция ini_set попытается переопределить конфигурацию, найденную в вашем ini-файле PHP.

Display_errors и display_startup_errors — это только две из доступных директив. Директива display_errors определяет, будут ли ошибки отображаться для пользователя. Обычно директива dispay_errors не должна использоваться для “боевого” режима работы сайта, а должна использоваться только для разработки.

display_startup_errors — это отдельная директива, потому что display_errors не обрабатывает ошибки, которые будут встречаться во время запуска PHP. Список директив, которые могут быть переопределены функцией ini_set, находится в официальной документации .

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

Отображение ошибок PHP через настройки в php.ini

Если ошибки в браузере по-прежнему не отображаются, то добавьте директиву:

display_errors = on

Директиву display_errors следует добавить в ini-файл PHP. Она отобразит все ошибки, включая синтаксические ошибки, которые невозможно отобразить, просто вызвав функцию ini_set в коде PHP.

Актуальный INI-файл можно найти в выводе функции phpinfo (). Он помечен как “загруженный файл конфигурации” (“loaded configuration file”).

Отображать ошибки PHP через настройки в .htaccess

Включить или выключить отображение ошибок можно и с помощью файла .htaccess, расположенного в каталоге сайта.

php_flag display_startup_errors on
php_flag display_errors on

.htaccess также имеет директивы для display_startup_errors и display_errors.

Вы можете настроить display_errors в .htaccess или в вашем файле PHP.ini. Однако многие хостинг-провайдеры не разрешают вам изменять ваш файл PHP.ini для включения display_errors.

В файле .htaccess также можно включить настраиваемый журнал ошибок, если папка журнала или файл журнала доступны для записи. Файл журнала может быть относительным путем к месту расположения .htaccess или абсолютным путем, например /var/www/html/website/public/logs.

php_value error_log logs/all_errors.log

Включить подробные предупреждения и уведомления

Иногда предупреждения приводят к некоторым фатальным ошибкам в определенных условиях. Скрыть ошибки, но отображать только предупреждающие (warning) сообщения можно вот так:

error_reporting(E_WARNING);

Для отображения предупреждений и уведомлений укажите «E_WARNING | E_NOTICE».

Также можно указать E_ERROR, E_WARNING, E_PARSE и E_NOTICE в качестве аргументов. Чтобы сообщить обо всех ошибках, кроме уведомлений, укажите «E_ALL & ~ E_NOTICE», где E_ALL обозначает все возможные параметры функции error_reporting.

Более подробно о функции error_reporting ()

Функция сообщения об ошибках — это встроенная функция PHP, которая позволяет разработчикам контролировать, какие ошибки будут отображаться. Помните, что в PHP ini есть директива error_reporting, которая будет задана ​​этой функцией во время выполнения.

error_reporting(0);

Для удаления всех ошибок, предупреждений, сообщений и уведомлений передайте в функцию error_reporting ноль. Можно сразу отключить сообщения отчетов в ini-файле PHP или в .htaccess:

error_reporting(E_NOTICE);

PHP позволяет использовать переменные, даже если они не объявлены. Это не стандартная практика, поскольку необъявленные переменные будут вызывать проблемы для приложения, если они используются в циклах и условиях.

Иногда это также происходит потому, что объявленная переменная имеет другое написание, чем переменная, используемая для условий или циклов. Когда E_NOTICE передается в функцию error_reporting, эти необъявленные переменные будут отображаться.

error_reporting(E_ALL & ~E_NOTICE);

Функция сообщения об ошибках позволяет вам фильтровать, какие ошибки могут отображаться. Символ «~» означает «нет», поэтому параметр ~ E_NOTICE означает не показывать уведомления. Обратите внимание на символы «&» и «|» между возможными параметрами. Символ «&» означает «верно для всех», в то время как символ «|» представляет любой из них, если он истинен. Эти два символа имеют одинаковое значение в условиях PHP OR и AND.

error_reporting(E_ALL);
error_reporting(-1);
ini_set('error_reporting', E_ALL);

Эти три строки кода делают одно и то же, они будут отображать все ошибки PHP. Error_reporting(E_ALL) наиболее широко используется разработчиками для отображения ошибок, потому что он более читабелен и понятен.

Включить ошибки php в файл с помощью функции error_log ()

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

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

error_log("There is something wrong!", 0);

Параметр type, если он не определен, будет по умолчанию равен 0, что означает, что эта информация журнала будет добавлена ​​к любому файлу журнала, определенному на веб-сервере.

error_log("Email this error to someone!", 1, "someone@mydomain.com");

Параметр 1 отправит журнал ошибок на почтовый ящик, указанный в третьем параметре. Чтобы эта функция работала, PHP ini должен иметь правильную конфигурацию SMTP, чтобы иметь возможность отправлять электронные письма. Эти SMTP-директивы ini включают хост, тип шифрования, имя пользователя, пароль и порт. Этот вид отчетов рекомендуется использовать для самых критичных ошибок.

error_log("Write this error down to a file!", 3, "logs/my-errors.log");

Для записи сообщений в отдельный файл необходимо использовать тип 3. Третий параметр будет служить местоположением файла журнала и должен быть доступен для записи веб-сервером. Расположение файла журнала может быть относительным путем к тому, где этот код вызывается, или абсолютным путем.

Журнал ошибок PHP через конфигурацию веб-сервера

Лучший способ регистрировать ошибки — это определить их в файле конфигурации веб-сервера.

Однако в этом случае вам нужно попросить администратора сервера добавить следующие строки в конфигурацию.

Пример для Apache:

ErrorLog "/var/log/apache2/my-website-error.log"

В nginx директива называется error_log.

error_log /var/log/nginx/my-website-error.log;

Теперь вы знаете, как в PHP включить отображение ошибок. Надеемся, что эта информация была вам полезна.

аватар | 20 июня 2013 18:26

Часто слышал о такой проблеме от других пользователей. Одним из-за хостера нужно скрыть появляющиеся ошибки, другим наоборот — понять, что происходит с их кодом, потому что ни одна ошибка не показывается. В этой статье постараюсь показать все основные способы отобразить / скрыть ошибки.

В скрипте PHP

1) В PHP есть всего лишь один оператор, который поддерживает систему управления ошибками — это знак @. Он позволяет проигнорировать сообщение любое сообщение об ошибке. Его нужно ставить ПЕРЕД выражением, которое может её содержать.

В примере специально допущена ошибка, но она НЕ будет отображена

$value = @$var[$key];

2) Также можно перед проверяемым скриптом PHP можно вставить настройку параметра отображения ошибок (display_errors). Он может приобретать значение либо On (показывать), либо Off (скрыть).

ini_set('display_errors','On');
error_reporting('E_ALL');

И соответственно после кода, который проверялся на ошибки, выставить параметр обратно.

ini_set('display_errors','Off');

Например, Вы хотите увидеть ошибки в скрипте

ini_set('display_errors', 'On'); // сообщения с ошибками будут показываться
error_reporting(E_ALL); // E_ALL - отображаем ВСЕ ошибки
$value = $var[$key]; // пример ошибки
ini_set('display_errors', 'Off'); // теперь сообщений НЕ будет

Можно выставить наоборот (в верхнем off, а в нижнем on), чтобы в конкретном отрезке кода ошибки НЕ отображались.

В файле .htaccess

Чаще всего проблему решают именно указанием настроек в файле .htaccess, который располагается в корневой директории сайта. В строке php_flag display_errors нужно также выставить On или Off

php_flag display_errors On
#показать все ошибки кроме предупреждений (Notice)
php_value error_reporting "E_ALL & ~E_NOTICE"
Если Вам нужно работать с конкретным типом ошибок, то привожу основные их виды:

E_ALL — все ошибки
E_ERROR — ошибки функций (критические)
E_WARNING — предупреждения
E_PARSE — ошибки синтаксиса
E_NOTICE — замечания (ненормальный код — кодировка и тп)
E_CORE_ERROR — ошибка обработчика
E_CORE_WARNING — предупреждения обработчика
E_COMPILE_ERROR — ошибка компилятора
E_COMPILE_WARNING — предупреждение компилятора
E_USER_ERROR — ошибка пользователей
E_USER_WARNING — предупреждение пользователей
E_USER_NOTICE — уведомления пользователей

В файле php.ini

Как видите, параметр можно указать в нескольких местах. Однако, если у Вы хотите, чтобы целиком на сайте этот параметр имел определённое значение, то проще выставить его в файле php.ini.(к нему на хостинге не всегда может быть доступ), но в этом случае можно будет даже обойти настройки всего хостинга

В php.ini:

error_reporting = E_ALL
display_errors On

В верхней строке выбираем все виды ошибок, в нижней даём добро на их отображение.

После правок необходимо перезапустить Apache, чтобы настройки были изменены и вступили в силу (graceful или restart):

sudo apachectl -k graceful

В каком порядке обрабатывается параметр ошибок

В самом начале учитывается параметр php.ini , затем .htaccess , а после то, что указано непосредственно в скрипте PHP. Так что если что-то не сработало, то смотрим по цепочку выше, возможно, там настройка другая.

Как обычно спасибо за внимание и удачи! Надеюсь статья была полезна!

Предыдущая статья
Пример настройки файла htaccess php Следующая статья
Как подсчитать количество строк в файле PHP?

Похожие статьи

Комментарии к статье (vk.com)

Небольшая заметка-подсказка для тех кому необходимо включить или отключить вывод ошибок на своем хостинге.
Когда речь идет о процессе разработки скриптов или сайтов необходимо быть в курсе ошибок и предупреждений, которые случаются в процессе их выполнения. К сожалению некоторые хостинг провайдеры блокируют вывод ошибок и предупреждений на столько сильно, что их вывод невозможно включить без обращения в техническую поддержку. Однако такие хостинги встречаются не часто и как правило включить или выключить вывод ошибок можно одним из следующих способов:

Способ 1: Использование файла .htaccess
Для этого откройте файл .htaccess который располагается в корне Вашего сайта (если его нет, то создайте его). И добавьте в него следующие строчки:

php_flag display_startup_errors on
php_flag display_errors on
php_flag html_errors on

Если Вам нужно отключить вывод ошибок — замените слово on на off.

Способ 2: С помощью PHP кода
Вы можете включать или отключать вывод ошибок в определенных файлах с помощью вызова PHP функций.

error_reporting(E_ALL); //вывод всех ошибок
error_reporting(0); //отключение ошибок
error_reporting(E_ALL & ~E_NOTICE); //вывод ошибок, но не предупреждений типа Notice

Все возможные аргументы Вы можете найти в документации на сайта php.net. Иногда так же может быть полезна команда ini_set:

ini_set('display_errors', 1); //включение ошибок

Однако данная команда обычно заблокирована.

Способ 3: Правка файла php.ini
Иногда хостинг провайдер открывает Вам доступ к файлу конфигурации PHP — php.ini. Доступ может быть открыт полностью, либо частично. Если Вы счастливый обладатель такого хостинга, то включить вывод ошибок можно изменив настройку display_errors.

display_errors = on

После чего необходимо перезагрузить apache.

Примечание:
Иногда редактирование файла php.ini вынесено в панель администрирования хостинга. Если Вам не помог ни один описанный способ, зайдите в панель управления хостингом и постарайтесь найти вкладку «настройки php», если данная вкладка присутствует, то скорее всего внутри нее будет опция, позволяющая включать или отключать вывод ошибок.

Запись опубликована в рубрике PHP с метками .htaccess, display error, hide error, PHP, php.ini, Settings, show error, вывести, ошибки, показать, предупреждения, спрятать. Добавьте в закладки постоянную ссылку.

2018/07/09

Марат

980

0

php |

Сегодня рассмотрим тему, как показать ошибку на сайте через PHP, либо наоборот скрыть ошибку и зачем вообще это нужно делать!?

Когда показываются ошибки, а они неминуемо будут у вас происходить – это не есть хорошо! Не просто от вида с типа »Warning» — но и с точки зрения хакеров.

Что имеется ввиду!? Когда выскакивает какая-то ошибка, то показывается абсолютный путь до файла… А этим можно воспользоваться!

И в зависимости от настроек вашего сервера – настройки вывода либо скрытия ошибок может быть разным!

Навигация по странице :

  1. ini_set(‘display_errors’, ‘off’)
  2. Скрыть ошибку notice
  3. Скрыть ошибку через ini файл
  4. Скрыть ошибку через .htaccess файл
  5. Скрыть ошибки через панель администратора
  6. Php не показывает ошибки белый экран.
  7. Мой способ скрыть ошибки php
  1. ini_set(‘display_errors’, ‘off’)

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

    Я пользуюсь простой записью вида :

    ini_set(‘display_errors’, ‘off’);

    Если «off» отключено, если «on» включено. Данную запись нужно поставить в начало страницы.

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

    Как собственно данный сайт сделанный на html + php + css с использованием икнклудов.

  2. Скрыть ошибку notice

    Иногда встречается ошибка notice — её можно забить таким образом:

    error_reporting( E_ERROR );

  3. Скрыть ошибку через ini файл

    Открываем файл ini — он должен находиться выше корневой папки.. Ищем строку и ставим вместо on — off

    display_errors= on

  4. Скрыть ошибку через .htaccess файл

    В корневой папке должен быть файл htaccess

    php_flag display_errors off

    php_flag display_startup_errors off

  5. Скрыть ошибки через панель администратора

    Можно включать, отключать показ ошибок через панель администрирования, если мы говорим о том хостинге на котором я нахожусь! (Кстати рекомендую – отличный хостинг! )
    Для примера давайте покажу, где отключать включать ошибки php у провайдера RUWEB.NET

    Заходим в админ панель хостинга, ищем настройки php.

    php показать/скрыть  ошибки

    Ну и далее собственно , включаем или отключаем показ ошибок на сайте.

    php показать/скрыть  ошибки

  6. Php не показывает ошибки белый экран.

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

    Нельзя утверждать на все 100%, но возможно от настроек файла ini или же настроек через панель администрирования…

    Но одно можно утверждать на 100% — если ошибка не выводится. то что-то этому мешает!

  7. Мой способ скрыть ошибки php

    Не знаю какой способ скрыть ошибки вы выберете, и все те способы, которые были описаны сверху- имеют право на существование, но я использую такой способ сокрытия ошибок, до безобразия примитивный!

    Перёд include у меня стоит собака «@» — она будет забивать любую ошибку в коде php.

    @Include(config.php)

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

    Мой способ скрыть ошибки php

Можете не благодарить, лучше помогите!

COMMENTS+

 
BBcode


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

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

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

  • Яшка сломя голову остановился исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного исправьте ошибки
  • Ясность цели позволяет целеустремленно добиваться намеченного где ошибка
  • Php7ts dll ошибка при проверке php
  • Pioneer flac ошибка 19