Ho una pagina PHP che non produce nessun output.
Vorrei salvare su un file di log tutti gli errori eventualmente avvenuti durante l'esecuzione, come posso fare?
Ho una pagina PHP che non produce nessun output.
Vorrei salvare su un file di log tutti gli errori eventualmente avvenuti durante l'esecuzione, come posso fare?
Penso che si potrebbe fare modificando il php.ini, ma su AV non č consentito.
Oppure:
A questo punto modifichi la variabile $out e levi tutti gli errori con str_replace() + regex, ma la cosa diventa laboriosa.Codice PHP:
<?php
ob_start();
//pagina
$out = ob_get_contents();
?>
ma dopo l'esecuzione del codice che hai postato cosa contiene la variabile $out?
Ti faccio un esempio:
Con questo codice in out hai l'output di include e quindi il sorgente di my_file.phpCodice PHP:
ob_start();
include("my_file.php");
$out = ob_get_contents();
ob_end_clean();
Ma io volevo ottenere solo gli errori di PHP...
Lo ha detto grabryhacker, devi usare le espressioni regolari (regex)
In pratica controlli se nel sorgente di $out ci sono degli errori con preg_match(_all) o ereg.
Ultima modifica di nokiagames : 30-08-2009 alle ore 15.35.19
Ma dai, la soluzione proposta sopra con un errore fatale non funzionerą mai perchč l'interpretazione dello script incluso fallirą.
Piuttosto:
Error Handling and Logging
Ciao!
Puoi spiegarmi come funziona?
Dalla documentazione non mi č chiarissimo...
prova ad aggiungere
all'inizio del codiceCodice PHP:
error_reporting(E_ALL);
I motivi possono esser molteplici: una query che ritorna una tabella vuota, una condizione mal gestita/imprevista oppure un header che non corrisponde al contenuto
Il PHP configurato com'č qui su AV garantisce che se non si tratta di errori semantici, ma sintattici, allora saranno sempre notificati
Lo so ma quello che chiedevo io era come poterli salvare su un file di log...
puoi registrare l'ultimo errore http://it2.php.net/manual/en/functio...r-get-last.php oppure utilizzare un handler che invece di gestirli li registra tutti http://it2.php.net/manual/en/functio...or-handler.php