KompiuteriaiFailų tipai

PHP klaidų išvedimas

Nesvarbu, koks tvarkingas ir dėmesingas buvo interneto programuotojas, jo darbe gali būti klaidų ir netikslumų. Dėl to tai gali sukelti svetainės ar paslaugos nesėkmę. Norėdami derinti projekto kūrimo metu, į PHP gali būti įtraukta klaidų išvestis.

Kaip tai veikia?

PHP tikrai reaguoja į tą ar tą scenarijų kodą. Kai kuriais atvejais - atlikdami reikiamus veiksmus, kitose - rodoma klaida. Šis mechanizmas padeda programuotojui kodo sekcijos įgyvendinimo metu greitai pašalinti trūkumus.

Tačiau PHP klaidų išvestis ne visada reikalinga. Kai baigsite kurti projektą, ši funkcija bus išjungta, kad būtų išvengta įsilaužimo arba neteisėtos prieigos.

Tinkinti

Visai PHP interpretatoriaus konfigūracijai failas php.ini atsako. Ji turi klaidos pranešimo direktyvą, kuri tiesiog apibrėžia PHP klaidų išvestį. Tačiau, nors jis apima ir išimčių tvarkymą, display_errors reaguoja į jų rodymą naršyklės lange. Jei jis išjungtas, sistema parodo tuščią puslapį, o ne klaidą.

Išimčių klasifikavimas

PHP klaidų išvestis gali būti sąlygiškai suskirstyta į keletą kategorijų:

  • Klaidos, dėl kurių scenarijus nustos veikti. Vadinamasis, mirtinas. Tai apima E_ERROR, E_COMPILE_ERROR;

  • Klaidos, kurias galima pašalinti. Jų klaidos ataskaitos direktyvos vertės gali būti tokios: E_WARNING, E_NOTICE ir kt.

Verta išsamiau nagrinėti kiekvieną tipą ir apibūdinti jo funkcionalumą.

  • E_ERROR. Paprastai šis tipas nurodo tokias klaidas, kurių negalima greitai pašalinti arba tęsti scenarijaus vykdymą. Tai gali apimti ir atminties paskirstymo problemas;

  • E_WARNING. Kodas veiks toliau, tačiau bus rodomas įspėjimas, kad yra kokia nors klaida, kurios kodas nurodytas pranešime. Ne kritiškas;

  • E_NOTICE. Pranešimai, rodomi: įvyko kažkas, dėl kurių gali kilti klaida. Taip pat nėra svarbu kodo vykdymui;

  • E_USER_ERROR. Klaidos, kurias sukelia naudotojas;

  • E_ALL. Tai apima visų rūšių klaidas. Paprastai ši parinktis įjungiama pagal numatytuosius nustatymus, kai diegiate vertėją.

Kaip įgalinti klaidų išvedimą PHP

Klaidų mechanizmų naudojimas PHP gali skirtis, priklausomai nuo to, kur kodas taikomas - priegloboje ar vietiniame kompiuteryje. Antruoju atveju kūrėjas gali sukonfigūruoti savo serverį ir rodyti jį taip, kaip jam patinka, būtent pakeiskite konfigūraciją failo php.ini. Pakanka pateikti dvi direktyvas: display_errors ir error_reporting į šią formą:

Display_errors yra

"E_ALL" klaidos pranešimas

Šios komandos leidžia rodyti visus klaidų pranešimus tiesiai naršyklės lange.

Jei kūrimas atliekamas virtualaus prieglobos, tada dažniausiai klaidos rodymo funkcija yra išjungta dėl saugumo priežasčių. Todėl, norėdami jį suaktyvinti, reikės naudoti Apache htaccess serverio konfigūracijos failą. Paprastai tai yra svetainės šaknis. Jums reikia pridėti kelias eilutes prie jo naudodami bet kurį teksto redaktorių:

Php_flag display_errors on

Php_value ataskaitos apie klaidas -1

Taip pat galite išvedinėti klaidas tiesiai iš kodo naudodami funkciją ini_set (). Tačiau reikia nepamiršti, kad po svetainės kūrimo jos taikymas gali sukelti saugumo problemų.

Rašykite į failą

PHP leidžia išsaugoti visas klaidas, įvykusias tam tikroje vietoje kietajame diske. Norėdami įtraukti PHP klaidų išvestį į failą, galite naudoti tris būdus:

  1. Redaguokite failą php.ini. Čia reikia apibrėžti dvi eilutes. Pirmasis yra log_errors = On, kuris iš tikrųjų aktyvuoja išvesties galimybes. Antrasis yra error_log = path / į norimą / failą.

  2. Redaguoti htaccess. Taip pat galite pridėti dvi eilutes. Php_value log_errors "on" ir php_value error_log path / į failą.

  3. Naudokite ini_set funkciją reikalingoje kodo vietoje.

Išvada

PHP klaidų išvedimas yra būtina derinimo kodo priemonė. Tačiau ji taip pat gali sukurti potencialiai pažeidžiamas sritis. Todėl būtina atsargiai ir atsargiai naudoti šį mechanizmą. Kai svetainė ar paslauga praėjo visus bandymų etapus, turite įsitikinti, kad nėra klaidų, kuriomis užpuolikas gali pasiekti svarbius duomenis.

Similar articles

 

 

 

 

Trending Now

 

 

 

 

Newest

Copyright © 2018 lt.birmiss.com. Theme powered by WordPress.