За последние 24 часа нас посетили 16728 программистов и 1646 роботов. Сейчас ищут 1044 программиста ...

сообщения об ошибках

Тема в разделе "PHP для новичков", создана пользователем Dimasick, 20 мар 2016.

  1. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    Возникла необходимость отключить сообщения об ошибках при работе php-модуля. Думал, что все просто: error_reporting( E_ERROR ), но вот ошибки во время выполнения sql-запросов все равно вылетают в окне броузера. Казалось бы, достаточно вместо
    Код (PHP):
    1. $sql = mysqli_query($link, $zapros); 
    писать
    Код (PHP):
    1. $sql = mysqli_query($link, $zapros) or die() ;  
    но все не так просто - бОльшая часть кода уже написана без этих die().

    Возникает вопрос: можно ли все-таки отключить все сообщения об ошибках при выполнении sql-запросов какой-нибудь одной командой? Желающих написать "ошибки нужно исправлять, а не скрывать" прошу воздеражться от советов.

    Подсказка от модератора:
    Любой код или текст конфигурации пишите между тегом [code=php] и [/code].
    Используйте отступы в коде для форматирования текста.
    Это помогает быстрее понять вас, увеличивает шанс на получение ответа.
    Что выделять? Например: PHP, HTML, CSS, JavaScript, SQL, XML, .htaccess, ini, регулярные выражения, код шаблонизаторов, любая другая разметка, результаты array/object dump и т. д.
     
  2. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
  3. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Код (PHP):
    1. $sql = mysqli_query($link, $zapros) or die() ;
    это как раз и будет выводить ошибки.
     
  4. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    display_errors("0"); не помогло. Может потому, что "...это ни на что не повлияет, если в скрипте есть фатальные ошибки."
    Хотя странно... сначала не работало. После перезагрузки пишет "Call to undefined function display_errors()".
    Если пишу ini_set(display_errors, false); то вообще никакой реакции...
     
  5. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А шо die научился ошибки без mysql_error() выводить? o_O
    Я как то давно пользовался:(

    Предлагаю еще раз загуглить и попробовать написать правильно. Это легко поэтому давай самостоятельно попробуй.
     
  6. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    Если пишу ini_set(display_errors, false); то вообще никакой реакции... Может на fatal error эта директива не действует?
     
  7. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А кавычки где? o_O
    ini_set('display_errors', 0);

    А какая ошибка то?
     
  8. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    С кавычками тоже не работает. Ошибка - Cannot extract1 values... Unknown column '1id' in 'field list'. Только не говорите, как исправить эту ошибку, я ее сам и написал, чтобы проверить работоспособность "отключателя сообщний в броузер".
     
  9. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    Перед выполнением запроса выполни
    echo ini_get('display_errors');
    что выводит?
     
  10. mr.akv

    mr.akv Активный пользователь

    С нами с:
    31 мар 2015
    Сообщения:
    1.604
    Симпатии:
    206
    Не, ну я как бы к этому и вёл, что если дай будет вызывать мускли_еррор, то будут сыпаться ошибки. Думал, что автор дай написал без вызова мускли_еррор просто в качестве примера...
     
  11. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    выдает 1
     
  12. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    А должен 0
    Где то ошибся. Ищи.
    Можешь в php.ini поменять еще.
     
  13. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    До ini_set('display_errors', 0); выдает 1, а после ini_set('display_errors', 0); уже выдает 0. Но ошибку из sql-запроса выводит на экран.
     
  14. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    error_reporting(0) наверное
     
  15. mkramer

    mkramer Суперстар
    Команда форума Модератор

    С нами с:
    20 июн 2012
    Сообщения:
    8.600
    Симпатии:
    1.764
    А почему вообще у вас в базу уходят запросы с ошибками?
     
  16. Dimasick

    Dimasick Активный пользователь

    С нами с:
    30 апр 2011
    Сообщения:
    57
    Симпатии:
    0
    не помогает.
    Уже писал выше.
     
  17. smitt

    smitt Старожил

    С нами с:
    3 янв 2012
    Сообщения:
    3.166
    Симпатии:
    65
    error_reporting - контролирует какие ошибки будут логироваться
    display_errors - вывод в браузер

    Если тебе ничего не помогает это означает что у тебя руки не из того места растут:(
    Почитай статью и подумай еще раз
    http://phpfaq.ru/debug

    Добавлено спустя 11 минут 44 секунды:
    Потестил, ты похоже где то говнокодил и оставил вызов функции mysqli_error
    [​IMG]
     
  18. Period

    Period Новичок

    С нами с:
    29 дек 2014
    Сообщения:
    148
    Симпатии:
    1
    Не, не получается удержаться. Ошибки нельзя скрывать. Их нужно обрабатывать. Если вы добьётесь работы того, что вам тут советуют, вы просто получите пустой экран. Вот поверьте, пользователю и вам от этого будет плохо. Читайте про set_error_handler. Перенаправляйте туда все ошибки вместе с нотайсами, а дальше уже решайте сами, выводить на экран, писать в лог, отправлять в /dev/null или просто игнорировать.
     
  19. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    я в базу складываю
     
  20. machetero

    machetero Активный пользователь

    С нами с:
    25 окт 2014
    Сообщения:
    499
    Симпатии:
    21
    Вроде как set_error_handler только пользовательские ошибки обрабатывает(которые были вызваны trigger_error())
     
  21. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
  22. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Он даже фаталы и ошибки уровня ядра ловит, все ок. Собсно, для того эта функция и сделана, чтобы можно было свои логи вести, а не курить километровые логи всяких апачей, где между тысячью репортов сервера фига с два ты увидишь строчку, оставленную пхп.