Вывод всех типор ошибок на PHP. www.prog-time.ru

Скрипт для вывода ошибок на PHP. Вывод всех типов ошибок.

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

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

Скрипт для вывода ошибок

Вот так выглядит скрипт:

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

ini_set — Устанавливает значение настройки конфигурации. Настройка будет хранить установленное значение пока выполняется скрипт. После завершения работы скрипта значение настройки вернется к исходному.

error_reporting — Задает, какие ошибки PHP попадут в отчет. Здесь в качестве параметра вы можете задать нужный тип ошибок из списка доступных. У меня стоит E_ALL, что означает вывод всех типов ошибок.

Если display_errors = on, то в случае ошибки браузер получит html c текстом ошибки и кодом 200.

Если же display_errors = off, то для фатальных ошибок код ответа будет 500 и результат не будет возвращён пользователю, для остальных ошибок – код будет работать неправильно, но никому об этом не расскажет.

Это не обязательно, но все же, хочу сказать как лучше всего реализовать работу данного скрипта. Я это делаю следующим образом: добавляю скрипт в главный файл сайта (чаще всего это index.php). Можно прописать туда код или подключить как сторонний файл. И после этого я прописываю в файл .htaccess код, который производит редирект каждого запроса к сайту через файл index.php. Из этого получается что index.php становится файлом конфигурации и в него по мимо этого можно добавить другие скрипты, которые будет срабатывать при каждой загрузке сайта.

Как это реализовать, вы можете посмотреть в этой записи – http://prog-time.ru/perenapravlenie-vseh-zaprosov-cherez-fajl-index/

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

Теперь давайте поговорим о типах ошибок.

Типы ошибок в PHP

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

Вам достаточно просто записать название и что оно обозначает.

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

Фатальные ошибки

Начнем мы с первой группы. Эти ошибки останавливают работу кода или совсем не дают ему запуститься.

E_PARSE

Самая популярная ошибка у начинающих разработчиков. Эта ошибка появляется, когда вы допускаете грубую нарушение синтаксиса и интерпретатор PHP не понимает, что вы от него хотите.

Вот в чем может быть ошибка:

  • Не закрыта или имеется лишняя скобка
  • В конце строки не стоит точка с запятой
  • Специальные знаки стоят в неположенном месте

E_ERROR

Это ошибка появляется, когда PHP понял что вы хотите, но сделать сие не получилось ввиду ряда причин, так же прерывает выполнение скрипта, при этом код до появления ошибки сработает.

Вот в чем может быть ошибка:

  • не найден файл, неправильно указан путь к файлу.
  • попытка вызвать несуществующий метод класса
  • Отсутствия свободной памяти (больше, чем прописано в директиве memory_limit) или ещё чего-нить подобного
  • Рекурсивный вызов функции. В данном примере он закончился на 256-ой итерации, ибо так прописано в настройках xdebug

Это все что касается фатальных ошибок. Теперь поговорим о не фатальных ошибка. Это самые противные ошибки, так как с ними больше всего хлопот из-за трудности их поимки и исправление.

Не фатальные ошибки

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

E_WARNING

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

E_NOTICE

Это самые распространенные ошибки, мало того, есть любители отключать вывод ошибок и клепают их целыми днями. Возникают при целом ряде тривиальных ошибок.

Сюда входят следующие ошибки:

  • Обращение в неопределенной переменной
  • Обращение к несуществующему элименту
  • Обращение  к несуществующей константе
  • Конвертация типов данных.

E_STRICT

Это ошибки, которые научат вас писать код правильно, чтобы не было стыдно, тем более IDE вам эти ошибки сразу показывают. Вот например, если вызвали не статический метод как статику, то код будет работать, но это как-то неправильно, и возможно появление серьёзных ошибок, если в дальнейшем метод класса будет изменён, и появится обращение к $this.

E_DEPRECATED

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

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

При работе с серьезными проектам, обязательно тщательно проверять на ошибки работу программ.

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

На этом всё!
Если у вас есть вопросы, пишите их в нашей группе - https://vk.com/progtime
Вы так же можете разместить свой вопрос на нашем форуме, где другие программисты смогут вам помочь в решение вашей задачи - https://vk.com/prog_time
В ней мы делимся своим опытом с другими начинающими программистами, поэтому обязательно ответим на ваш вопрос.
Так же прокачивайте свои навыки на нашем канале - https://www.youtube.com/c/ProgTime

36
Оставить комментарий

avatar
36 Цепочка комментария
0 Ответы по цепочке
0 Последователи
 
Популярнейший комментарий
Цепочка актуального комментария
33 Авторы комментариев
JosephDionaJosephDionaDonaldTwillDonaldTwillDennisLof Авторы недавних комментариев
  Подписаться  
новее старее большинство голосов
Уведомление о
Antoinemerly
Гость
Antoinemerly

Потому что если целиком моментально не изменить вам может что-то либо совсем не доставиться http://zaqwer.com

Antoinemerly
Гость
Antoinemerly

Потому что если целиком моментально не изменить вам может что-то либо совсем не доставиться http://zaqwer.com

JanleF
Гость

Metronidazole Plus Amoxicillin Combination [url=https://apcialisle.com/#]buying cialis online safely[/url] Hydrochlorothiazide Express Delivery Store Cialis Effetti Cialis Scaduto

JanleF
Гость

Cialis Levitra Effetti Collaterali [url=https://apcialisle.com/#]Cialis[/url] Kamagra Online Pharmacy Uk buy cialis online without a prescription Viagra Commander Sur Internet

bemnite
Гость
bemnite

buy levitra south africa medicine without dr prescription viagra men sale

AlvinCox
Гость
AlvinCox

cialis generique discount http://tadmedz.com cialis 5 mg cheap

CharlesGOP
Гость
CharlesGOP

cialis canada cheapest http://cialisxtl.com cheap cialis lilly

Waltonplort
Гость
Waltonplort

order cheap cialis online https://viagrawithoutdoctorspres.com viagra buy england

BarryNaW
Гость
BarryNaW

otc viagra https://edpillsphrm.com how to buy cialis in japan

JanleF
Гость

Generic Dutasteride [url=https://abuycialisb.com/#]Buy Cialis[/url] Estrogen Pills Buy Cialis Purchase Cialis Online Canada

JanleF
Гость

Achat Cialis Site Securise [url=https://abuycialisb.com/#]Buy Cialis[/url] isotretinoin website next day store by money order Buy Cialis discount isotretinoin in usa drugs with free shipping

Jefferykap
Гость
Jefferykap

buy cialis ebay https://www.sildwithdoctorprescription.com how to cut a cialis pill in half

Marvinerulk
Гость
Marvinerulk

buy viagra jellies http://hydroxychloroquine24.com – buy plaquenil best site to order viagra

Marvinerulk
Гость
Marvinerulk

buy cialis uk no prescription http://hydroxychloroquine24.com – hydroxychloroquine levitra buy germany

Marvinerulk
Гость
Marvinerulk

levitra for sale online http://hydroxychloroquine24.com – buy hydroxychloroquine online cheap viagra levitra

Marvinerulk
Гость
Marvinerulk

order cialis online no prescription canada http://kaletra24.com – buy generic kaletra cialis over the counter 2019

Marvinerulk
Гость
Marvinerulk

viagra sale online canada http://aralenph.com – buy chloroquine online buy cheap generic cialis online

Marvinerulk
Гость
Marvinerulk

viagra online usa http://tadal24ph.com – generic cialis at walmart cialis pills uk

Marvinerulk
Гость
Marvinerulk

real viagra for sale online http://tadal24ph.com – cialis online levitra super active cheap us

Marvinerulk
Гость
Marvinerulk

safe place order viagra online http://alexa24ph.com – viagra cheap viagra + web.uinteramericana.edu

Marvinerulk
Гость
Marvinerulk

viagra sale toronto http://alexa24ph.com – sildenafil cheap cialis drug

AlfredAdvog
Гость
AlfredAdvog

buy viagra
buy cialis online new zealand

AlfredAdvog
Гость
AlfredAdvog

sildenafil
buy cialis generic india

AlfredAdvog
Гость
AlfredAdvog

viagra pills
order real cialis online

AlfredAdvog
Гость
AlfredAdvog

buy viagra
cialis professional cheap

AlfredAdvog
Гость
AlfredAdvog
AlfredAdvog
Гость
AlfredAdvog

viagra for men
discount cialis and viagra

AlfredAdvog
Гость
AlfredAdvog

buy sildenafil
order levitra online

AlfredAdvog
Гость
AlfredAdvog

viagra without doctor prescription
can you really buy cialis online

AlfredAdvog
Гость
AlfredAdvog

viagra without a doctor prescription
buy cialis cheap prices fast delivery

DennisLof
Гость
DennisLof

cialis coupons 2019 cheap cialis
tiujana cialis

DennisLof
Гость
DennisLof

where to get cialis sample cialis online
п»їcialis

DonaldTwill
Гость
DonaldTwill

what is viagra buy viagra
natural viagra

DonaldTwill
Гость
DonaldTwill

viagra erection after ejaculation cheap viagra
how long for viagra to take effect

JosephDiona
Гость
JosephDiona

cialis maximum dosage cialis generic
cialis 30 day trial voucher

JosephDiona
Гость
JosephDiona

cialis vidalista cost of cialis 20mg tablets
cost of cialis 20mg tablets