Подтвердить что ты не робот

Отключить ошибку отображения PHP.ini

Я пытаюсь отключить все ошибки на своем веб-сайте. Я следил за различными учебниками о том, как это сделать, но я продолжаю читать и открывать сообщения об ошибках. Есть что-то, чего я не хватает? Я пробовал следующее в файле php.ini:

;Error display
display_startup_errors = Off
display_errors = Off
html_errors = Off
docref_root = 0
docref_ext = 0

По какой-то причине, когда я делаю вызов fileopen() для файла, который не существует, я все равно получаю сообщение об ошибке. Это не безопасно для живого веб-сайта по понятным причинам.

Спасибо

4b9b3361

Ответ 1

Я всегда использую что-то вроде этого в файле конфигурации:

// toggle this to change the setting
define('DEBUG', true); 
// you want all errors to be triggered
error_reporting(E_ALL); 

if(DEBUG == true)
{
    // you're developing, so you want all errors to be shown
    display_errors(true);
    // logging is usually overkill during dev
    log_errors(false); 
}
else
{
    // you don't want to display errors on a prod environment
    display_errors(false); 
    // you definitely wanna log any occurring
    log_errors(true); 
}

Это позволяет легко переключаться между настройками отладки. Вы можете улучшить это, проверив, на каком сервере выполняется код (dev, test, accept, prod) и соответствующим образом измените ваши настройки.

Обратите внимание, что никакие ошибки не будут регистрироваться, если error_reporting установлен в 0, как это заметил Корри.

Ответ 2

Вы должны учитывать не отображать свои сообщения об ошибках!

Установите ini_set('display_errors', 'Off'); в свой php-код (или, если это возможно, прямо в ваш ini), и оставьте error_reporting на E_ALL или любом виде сообщений, которые вы хотели бы найти в своих журналах.

Таким образом, вы можете обрабатывать ошибки позже, пока ваши пользователи все еще не видят их.

Полный пример:

define('DEBUG', true);
error_reporting(E_ALL);

if (DEBUG)
{
    ini_set('display_errors', 'On');        
}
else
{
    ini_set('display_errors', 'Off');
}

Или просто (тот же эффект):

define('DEBUG', true);

error_reporting(E_ALL);
ini_set('display_errors', DEBUG ? 'On' : 'Off');

Ответ 3

В php.ini Комментарий,

error_reporting = E_ALL & ~E_NOTICE
error_reporting = E_ALL & ~E_NOTICE | E_STRICT
error_reporting = E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ER… _ERROR
error_reporting = E_ALL & ~E_NOTICE

Поместив ; перед ним (например, ;error_reporting = E_ALL & ~E_NOTICE)

Для отключения в одном файле поместите error_reporting(0); после открытия тега php.

Ответ 4

в php.ini вы должны попробовать это для всех ошибок

error_Reporting = off

Ответ 5

Позвольте мне быстро резюмировать это для справки:

  • error_reporting() адаптирует текущий активный параметр для обработчика ошибок по умолчанию.

  • Редактирование параметров ini отчетов об ошибках также меняет настройки по умолчанию.

    • Здесь необходимо отредактировать правильную версию php.ini - это обычно /etc/php5/fpm/php.ini на современных серверах, /etc/php5/mod_php/php.ini альтернативно; в то время как у версии CLI есть отличная.

    • В качестве альтернативы вы можете использовать в зависимости от SAPI:

      • mod_php: .htaccess с параметрами php_flag
      • FastCGI: обычно локальный php.ini
      • И с PHP выше 5.3 также .user.ini

    • Перезапустите веб-сервер как обычно.

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

set_error_handler(function(){});

Опять же, это не рекомендуется, просто альтернатива.

Ответ 6

в php.ini вы должны попробовать это для всех ошибок

display_errors = On

Ответ 7

Вы также можете использовать PHP error_reporting();

// disable it all for current call
error_reporting(0);

Если вы хотите игнорировать ошибки только от одной функции, вы можете добавить символ @.

@any_function(); // errors are ignored

Ответ 9

Я обычно использую php, встроенный в обработчики ошибок, который может обрабатывать каждую возможную ошибку вне синтаксиса и по-прежнему отображать хорошую страницу "Вниз для обслуживания", иначе:

Отформатировать ошибку PHP на рабочем сервере

Ответ 10

Откройте файл php.ini(если вы используете Linux - sudo vim/etc/php5/apache2/php.ini)

Добавьте эти строки в этот файл

   error_reporting = E_ALL & ~E_WARNING 

(Если вам нужно отключить другие ошибки → error_reporting = E_ALL и ~ E_DEPRECATED и ~ E_STRICT и ~ E_NOTICE и ~ E_WARNING)

    display_errors = On

И, наконец, вам нужно перезапустить сервер APACHE.

Ответ 11

данные = {метки: ["1", "2", "3", "4", "5"], наборы данных: [{метка: "d1", backgroundColor: "rgba (182,127,0,1)", borderColor: "rgba (117,61,41,1)", borderWidth: 1, данные: [0, 78, 64, 90, 97]}, {label: "d2", backgroundColor: "rgba (71,161,65, 1) ", borderColor:" rgba (36,93,56,1) ", borderWidth: 1, данные: [27, 63, 46, 64, 43]}, {label:" d3 ", backgroundColor:" rgba ( 255,141,106,1) ", borderColor:" rgba (99,60,32,1) ", borderWidth: 1, данные: [18, 50, 23, 83, 35]}, {label:" d4 ", backgroundColor:" rgba (160,160,160,1) ", borderColor:" rgba (60,60,60,1) ", borderWidth: 1, данные: [152, 141, 170, 194, 128], yAxisID: 'y-axis-2' ,}]}; var options = {scale: {yAxes: [{categoryPercentage: 0.6, barPercentage: 1,}, {id: 'y-axis-2', тип: 'category', отображение: true, позиция: 'left', categoryPercentage: 0, barPercentage: 1, barThickness: 70, gridLines: {offsetGridLines: true}}],}, legend: {display: false}};

var barChart = новая диаграмма ($ ("# myChart"), {тип: 'horizontalBar', данные: данные, опции: опции});

Ответ 12

это мало в случае php fpm. Это был еще один файл конфигурации, который может включить display_error. Вы должны найти www.conf, в моем случае он находится в каталоге /etc/php/7.1/fpm/pool.d/

Вы должны найти php_flag[display_errors] = on и отключить его php_flag[display_errors] = off это должно решить проблему