L'importanza di saper gestire al meglio "gli errori" di Php
Durante la fase di sviluppo di una applicazione poter avere
mostrati nel browers avvisi e errori è di vitale
importanza.
Gli errori in cui incorrono gli utenti sono spesso
indesiderati, soprattutto se il messaggio di errore contiene
informazioni di run time riguardanti il server o lo
script.
Inoltre queste informazioni, a seconda di che tipo sono,
possono essere un vantaggio per potenziali hackers.
Questo è solo uno dei motivi per cui PHP fornisce
opzioni flessibili per controllare quando, come e quali
messaggi d'errore devono essere visualizzati.
PHP divide gli errori di sintassi in 3 gruppi separati:
errori di logica, avvisi e avvertimenti.
Gli errori di logica sono classificati come errori
irreparabili che arrestano l'esecuzione dello script,
mentre gli avvisi e gli avvertimenti sono meno seri e non
arrestano lo script.
Per permettere ai settagi interni e alle funzioni di controllare come devono essere segnalati gli errori, PHP assegna costanti e valori a ciascuno dei vari tipi di errori.
I seguenti sono disponili con PHP 3
- 1 E_ERROR errore irreparabile (lo script si arresta)
- 2 E_WARNING errore di run time (lo script non si arresta)
- 4 E_PARSE errore logico al momento della compilazione
-
8
E_NOTICE
avviso, meno serio di un errore di run time
E_ALL tutti i messaggi di errore
Mentre questi sono stati aggiunti in PHP 4:
- 16 E_CORE_ERROR errore fatale durante lo start up di PHP
- 32 E_CORE_WARNING avvertimento durante lo start up di PHP
- 64 E_COMPILE_ERROR errore irreparabile durante la compilazione
- 128 E_COMPILE_WARNING avvertimento durante la compilazione
- 256 E_USER_ERROR messaggio di errore utente
- 512 E_USER_WARNING avvertimento utente
- 1024 E_USER_NOTICE avviso utente
Il file PHP.ini è la locazione primaria per controllare le opzioni di visualizzazione degli errori e contiene parecchi settagi da gestire, include: error_reporting, display_errors e error_log.
Il primo, error_reporting, usa le costanti mostrate sopra e
alcuni operatori logici "|" , "~" ,
"!" e "&" per sviluppare una
espressione che descriva che tipo di errore deve essere
mostrato.
Per esempio, il settaggio di default in PHP4 è: E_ALL
& ~E_NOTICE.
Questo indica che tutti i messaggi di errore devono essere
mostrati, tranne gli avvisi.
Il dispaly_error, quando è settato su "Off"
, elimina tutti gli errori logici, gli avvertimenti e gli
avvisi che normalmente vengono spediti al brower.
Questo settaggio lavora in congiunzione con error_log, che
permette di specificare che gli errori devono essere salvati
nell'error log del server.
I settagli di segnalazione degli errori possono anche essere
regolati su una base di script by script utilizzando la
funzione error_reporting().
Le regole definite da questa funzione hanno effetto solo
fino a quando lo script è in funzione.
Questo è specialmente utile quando si vogliono
mostrare gli errori in uno particolare script per lo sviluppo
e il debug e possono essere eliminati quando lo script
è pronto senza fare cambiamenti globali nel file
PHP.ini.
La funzione error_reporting() accetta nomi di costanti
(metodo consigliato), così come i loro valori interi.
error_reporting(0); - disabilita tutte le segnalazioni di
errore.
error_reporting(E_ALL); - abilita tutte le segnalazioni di
errore.
error_reporting(E_ERROR | E_WARNING); - mostra solo gli
errori critici e gli avvertimenti.
Si posso eliminare gli errori generati da una particolare
espressione all'interno di uno script, includendo nel
procedimento il simbolo @.
Per esempio: @unlink($file).
Tenete a mente che anche se sopprimete gli errori con il
metodo sopra descritto, uno script terminerà la sua
esecuzione quando il processo incontra un errore critico.
Una nota sulla creazione dei vostri messaggi d'errore
Potete notare che alcune costanti di errore descritti nella
sezione precedente, sono riferiti agli errore generati
dall'utente.
Al di la dello scopo di questo articolo (e alle
necessità delle maggior parte dei nuovi programmatori
di PHP), tenete a mente che PHP fornisce delle funzioni
avanzate che permettono di creare e implementare dei propri
messaggi di errore.
Per semplici script, la necessità di un trattamento
personalizzato degli errori è questionabile, ma per
applicazioni più professionali i benefici diventano
più apparenti.
Generando le vostre funzioni di trattamento dei messaggi,
potete controllare l'output, per esempio potete fornire
informazioni per contattare l'amministratore o
reindirizzare l'utente ad un'altra posizione.
Inoltre potete anche far spedire una email che vi informi
dell'errore critico che si è verificato.
La funzione set_error_handler() permette di aggiungere
queste funzionalità ai vostri script.
Per concludere, questo articolo dovrebbe avervi insegnato come combattere gli errori nei vostri script e come saperli gestire. Evitare e capire come eliminare velocemente gli errori dal vostro lavoro diminuirà il tempo che serve per sviluppare uno script e portarlo a termine.
Cose da ricordare:
* Generalmente, ci sono due tipi di errore: errori di
sintassi e errori logici.
* Potete prevenire gli errori logici abbozzando il vostro
progetto con un codice pseudo prima di incominciare.
* Gli errori di sintassi sono spesso accidentali e
perciò più difficili da prevenire.
* PHP dispone di caratteristiche per la gestione degli
errori che permetto di controllare l'output del messaggio
d'errore.
* PHP divide gli errori di sintassi in tre gruppi: errori,
avvertimenti e avvisi.
* La gestione degli errori può essere settata nel
file PHP.ini e nello script corrente.
* In uno script, il carattere @ prima di una espressione,
elimina qualsiasi errore, avviso o avvertimento che potrebbe
altrimenti comparire.
- Articolo precedente Dai record all'html con un semplice programma
- Articolo successivo Far scadere manualmente delle pagine web
Ti potrebbe interessare anche
commenta la notizia
Chiedi alla nostra Redazione!