Configurazione PHP
2 voci in php.ini determinano l'output degli errori:
display_errors
error_reporting
In produzione , di display_errors
solito è impostato su Off
(Il che è una buona cosa, perché la visualizzazione degli errori nei siti di produzione non è generalmente auspicabile!).
Tuttavia, in fase di sviluppo , dovrebbe essere impostato su On
, in modo che vengano visualizzati gli errori. Controlla !
error_reporting
(a partire da PHP 5.3) è impostato di default su E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED
(significato, tutto è mostrato tranne avvisi, standard rigorosi e avvisi di ammortamento). In caso di dubbio, impostarlo su E_ALL
per visualizzare tutti gli errori. Controlla !
Whoa whoa! Nessun controllo! Non posso cambiare il mio php.ini!
È un peccato. Di solito gli host condivisi non consentono l'alterazione del loro file php.ini e quindi l'opzione non è purtroppo disponibile. Ma non temere! Abbiamo altre opzioni !
Configurazione di runtime
Nello script desiderato, possiamo modificare le voci php.ini in runtime! Significato, verrà eseguito quando viene eseguito lo script! Dolce!
error_reporting(E_ALL);
ini_set("display_errors", "On");
Queste due righe avranno lo stesso effetto della modifica delle voci php.ini come sopra! Eccezionale!
Ottengo ancora una pagina vuota / errore 500!
Ciò significa che la sceneggiatura non era nemmeno stata eseguita! Questo di solito accade quando si verifica un errore di sintassi!
Con errori di sintassi, lo script non arriva nemmeno al runtime. Non riesce in fase di compilazione , il che significa che utilizzerà i valori in php.ini, che se non fossero stati modificati, potrebbe non consentire la visualizzazione degli errori.
Log degli errori
Inoltre, per impostazione predefinita PHP registra errori. Nell'hosting condiviso, può trovarsi in una cartella dedicata o nella stessa cartella dello script offensivo.
Se hai accesso a php.ini, puoi trovarlo sotto la error_log
voce.