Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

PHP e il report degli errori

Link copiato negli appunti

PHP offre alcuni importanti strumenti per la visualizzazione e il logging degli errori che permettono allo sviluppatore di determinare quali errori devono essere mostrati e in quale situazione. Il più importante è certamente error_reporting() attraverso il quale è possibile decidere con quale granularità tener conto degli errori.

Per esempio:

error_reporting(E_ALL); // Mostra tutti gli errori
error_reporting(E_ALL ^ E_NOTICE); // Esclude i NOTICE
error_reporting(0); // Non mostra nulla
error_reporting(1); // Solo gli errori fatali (E_ERROR)

I parametri di questa funzione possono essere espressi attraverso delle costanti predefinite o relativi valori binari.

Inoltre, è possibile decidere se mostrare gli errori a video o se ridirigerli in un file. Per farlo si può agire attraverso delle direttive ini_set() che possono essere espresse direttamente nello script, in un file .htaccess, nella configurazione del virtual host o direttamente nel php.ini; in caso la direttiva sia espressa in più di un modo la priorità seguirà l'ordine espresso (script, .htaccess, apache, php.ini), permettendoci di sovrascrivere localmente i valori.

display_errors (On/Off) indica se visualizzare o meno gli errori a video.

log_errors (On/Off) indica se attivare il logging su file degli errori.

error_log (string) indica il nome del file dove loggare gli errori. Il file deve essere scrivibile dal web server.

Una configurazione che uso spesso è la seguente:

error_reporting(E_ALL ^ E_NOTICE);
ini_set("log_errors", "On");
ini_set("error_log", "/path/file/di/log");
if(stristr($_SERVER['REQUEST_URI'],'?show_errors')){
    ini_set("display_errors","On");
}else{
    ini_set("display_errors","Off");
}

In questo modo tengo traccia di tutti gli errori tranne dei notice e li mostro a video esclusivamente per debug se aggiungo alla URL dello script ?show_errors, evitando che l'utente visualizzi stringhe di errore.

Ti consigliamo anche