Redazione
a- a+

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.

Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Staff
Ti interessano altri articoli su questo argomento?
Chiedi alla nostra Redazione!