Izlaz pogreške u PHP-u
Bez obzira koliko oprezni i pažljiviWeb programer, tijekom svog rada, moguće su pogreške i netočnosti. Kao rezultat toga, to može dovesti do neuspjeha stranice ili usluge. Za uklanjanje pogrešaka tijekom razvoja projekta moguće je uključiti izlazne pogreške u PHP-u.
Kako to radi?
PHP svakako reagira na ovaj ili onaj kodskripta. U nekim slučajevima - izvršavanje potrebnih radnji, u ostalim slučajevima - prikazuje pogrešku. Taj mehanizam pomaže razvojnom programeru da otkloni nedostatke u trenutku implementacije odjeljka koda.
Međutim, izlaz pogrešaka u PHP-u nije uvijek potreban. Nakon završetka izrade projekta ova je funkcija onemogućena, kako bi se izbjegla hakiranja ili neovlašteni pristup.
podešavanje
Za cijelu konfiguraciju PHP prevoditelja,php.ini datoteku. Ima pravilnu pogrešku, koja definira izlaz pogrešaka u PHP-u. Međutim, iako uključuje rukovanje iznimkama, display_errors je odgovoran za prikazivanje u prozoru preglednika. Ako je onemogućen, sustav prikazuje praznu stranicu umjesto pogreške.
Razvrstavanje iznimaka
Izlaz pogreške u PHP-u može se uvjetno podijeliti u nekoliko kategorija:
pogreške, zbog čega će skripta prestati raditi. Takozvani, kobni. To uključuje E_ERROR, E_COMPILE_ERROR;
pogreške koje se mogu eliminirati. Njihove vrijednosti za pravilnu grešku mogu biti: E_WARNING, E_NOTICE i drugi.
Vrijedno je detaljnije razmotriti svaku vrstu i opisati njegovu funkcionalnost.
E_ERROR. Obično se ova vrsta odnosi na takve pogreške koje se ne mogu brzo ukloniti ili nastaviti s izvršavanjem skripte. To može uključivati probleme s raspodjelom memorije;
E_WARNING. Kôd će nastaviti raditi, ali će se prikazati upozorenje da postoji neka pogreška, čiji je kôd označen u poruci. Nije kritično;
E_NOTICE. Obavijesti koje pokazuju: dogodilo se nešto što bi moglo uzrokovati pogrešku. Također nije bitno za izvršavanje koda;
E_USER_ERROR. Pogreške koje generira korisnik;
E_ALL. To uključuje sve vrste pogrešaka. Obično je ova opcija omogućena prema zadanim postavkama prilikom instaliranja tumača.
Kako omogućiti izlazne pogreške u PHP-u
Način korištenja mehanizama pogrešaka u PHP-umogu se razlikovati ovisno o tome gdje se kôd primjenjuje - na host ili na lokalnom računalu. U drugom slučaju, programer može konfigurirati svoj poslužitelj i prikazati onako kako mu se sviđa, odnosno promijeniti konfiguraciju u datoteci php.ini. Dovoljno je dati dvije smjernice - display_errors i error_reporting u sljedeći obrazac:
zaslonske pogreške uključene
error_reporting E_ALL
Te će naredbe prikazivati sve poruke o pogreškama izravno u prozoru preglednika.
Ako se razvoj provodi na virtualnomhosting, a najčešće je funkcija prikaza pogrešaka onemogućena iz sigurnosnih razloga. Stoga, da biste ga aktivirali, morat ćete koristiti datoteku konfiguracije Apache htaccess poslužitelja. Obično je u korijenu web mjesta. Morate dodati nekoliko redaka pomoću bilo kojeg uređivača teksta:
php_flag display_errors uključen
prijava pogreške php_value -1
Također možete izlaziti pogreške izravno iz koda pomoću funkcije ini_set (). Međutim, treba imati na umu da nakon razvijanja web stranice njena primjena može uzrokovati sigurnosne probleme.
Pišite datoteku
PHP vam omogućuje spremanje svih pogrešaka koje su se dogodile na određenom mjestu na tvrdom disku. Da biste uključili izlazne pogreške PHP-a u datoteku, možete koristiti tri načina:
uredite datoteku php.ini. Ovdje morate definirati dvije linije. Prvi je log_errors = On, koji zapravo aktivira izlaznu sposobnost. Drugi je error_log = put / do željene / datoteke.
Uređivanje htaccessa. Također možete dodati dvije retke na njega. php_value log_errors "na" i php_value error_log put / u datoteku.
Koristite funkciju ini_set u traženom mjestu koda.
zaključak
Izlaz pogreške u PHP je potreban alat uispravljanje koda. No, ona također može stvoriti potencijalno ranjiva područja. Stoga je potrebno pažljivo i pažljivo koristiti ovaj mehanizam. Nakon što je web-lokacija ili usluga prošli sve faze testiranja, morate biti sigurni da ne prikazuje pogreške pomoću kojih napadač može pristupiti važnim podacima.