Chybové hlásenia v PHP. Ako sa im čiastočne vyhnúť? Ako ich zaznamenávať? Všetko budeme robiť pomocou dvoch jednoduchých funkcií.
Error_Reporting()
Často sa stáva, že návštevník si chce prezrieť vaše stránky a narazí na nejakú
chybu - myslím chybu skriptu alebo jeho chybového spracovania. Estetika stránky
stráca svoju hodnotu a tým pádom klesá aj jej kvalita. Týmto chybám sa dá
predchádzať. Na deaktivovanie zobrazovania chýb nám bude postačovať
funkcia
error_reporting(). Upozorňujem, že najlepšie je chyby vypínať
len pri väčších aplikáciách ako je napr. diskusné fórum alebo redakčný systém.
Tam sa také niečo naozaj hodí. Funkcia má aj svoje predurčené parametre. Vkladať sa
do nej môžu parametre s nasledujúcej tabuľky.
| 1 |
E_ERROR |
Kritické chybe, po ktorých sa skript zastaví. |
| 2 |
E_WARNING |
Varovania, po ktorých skript pokračuje v činnosti. |
| 4 |
E_PARSE |
Chyby spracovania skriptu - syntax. |
| 8 |
E_NOTICE |
Ozámenia o udalostiach s skripte |
| 256 |
E_USER_ERROR |
Generované chyby pomocou trigger_error() |
| 512 |
E_USER_WARNING |
Generované varovania pomocou trigger_error() |
| 1024 |
E_USER_NOTICE |
Generované oznámenia pomocou trigger_error() |
| 2047 |
E_ALL |
Skript bude zobrazovať všetky chyby - vyššie uvedené. |
To čo ste videli ako posledné
E_ALL odporúčam používať iba pri
vývoji webových aplikácií. Avšak pre vypnutie chybových hlásení vám postačí
funkciu zapísať ako
error_reporting(0). Všetky chybové hlásenia budú
nastávať v pozadí stránky resp. budú prebiehať ale o nich nebudete vedieť.
V súčasnosti PHP ohlasuje všetky chyby, takže je implicitne nastavená na E_ALL
samozrejme okrem E_NOTICE. Čiže sú ohlasované všetky chyby okrem oznámení. Oznámenia niekedy nemusia predstavovať žiadny problém pre prácu skriptu a preto by iba zavadzali.
Error_Log()
Táto funkcia je vlastne pokračovaním funkcie
error_reporting() s tým
rozdielom, že táto funkcia ohlasuje chyby tam kam vy sami určíte. Parametre funkcie
sú nasledovné:
| 0 |
Chyba bude uložená podľa nastavenej metódy na OS. |
| 1 |
Správa o chybe sa odošle ne emailovú adresu. |
| 2 |
Táto správa sa odosiela ladiacemu programu. Táto možnosť už neplatí
od verzie PHP3. |
| 3 |
Správa sa bude ukladať do súboru. |
Posledná možnosť je v dnešnej dobe zahrnutá v službách takmer každého hostingu.
A ak nie môžete si to predsa urobiť sami. Návod nájdete práve tu. Predpokladajme, že
vo webovej aplikácií chceme zobrazovaniu chýb predchádzať a tak nastavíme
funkciu na hlásenie chýb na
error_reporting(0). Teraz máme zabezpečené
vypnutie všetkých chýb. Hneď pod túto funkciu umiestnime našu funkciu a zvolíme
si protokolovanie chýb do súboru. Čiže typ 3.
<?php
$error = "V skripte ".__FILE__." na riadku ".__LINE__." sa vyskytla chyba!n";
error_log($error,3,"error.txt");
?>
Po tomto zákroku chyby nebudú zobrazované ale ukladané do súboru error.txt. Poslednému parametru funkcie môžete
zadávať aj absolútnu cestu a pod. Konštanta __FILE__ slúži na odoslanie mena
súboru a konštanta __LINE__ na očíslovanie riadku kde nastala chyba.
To je asi všetko o hlásení chýb :-).