PHP Logging to file
Se usate il PHP sarete abituati nella maggior parte dei casi (ecezzione fanno coloro che usano determinati editor che fanno il debug automatico) a vedere gli errori sul monitor, peccato che questi errori posso essere utilizzati da un'attacker per bucare il sistema dove hostate il vostro sito; come proteggersi allora? semplice disabilitando gli errori a schermo
Nel file php.ini :
display_errors : On -> Off
ma ora come faccio ad avere un minimo di resoconto sugli errori e come posso far si che appaia un'utente con le scuse per il malfuzionamento del sito?
Presto detto ecco qua l'HOTWO che fa per voi:
- create un file .htaccess e inserite queste righe :
php_flag display_errors on
php_flag output_buffering on
php_value output_handler output_handler
php_value auto_prepend_file prepend .php(attenzione: dovete abilitare gli .htaccess con l'istruzione AllowOverride All all'interno del file di config di Apache)
- Create un file php in cui inserire:
error_reporting(0);
function EngineErrorHandler($errno, $errmsg, $filename, $filenum, $vars)
{
$dt = date("d-m-Y H:i:s");
$errortype = array(
1 => 'Error',
2 => 'Warning',
4 => 'Parsing Error',
8 => 'Notice'
);
$err = '<errorentry>\n';
$err .= '\t<datetime>'.$dt.'</datetime>';
$err .= '\t<errnum>'.$errno.'</errnum>';
$err .= '\t<errortype>'.$errortype[$errno].'</errortype>';
$err .= '\t<errormsg>'.$errmsg.'</errormsg>';
$err .= '\t<scriptname>'.$filename.'</scriptname>';
$err .= '\t<scriptlinenum>'.$linenum.'</scriptlinenum>';
$err .= '</errorentry>';
echo 'CIO CHE SI VUOLE DIRE ALL\'UTENTE';
error_log($err,3,$_SERVER['DOCUMENT_ROOT'].'/log/error.log'); //salvo l'errore in un file
}
$old_error_handler = set_error_handler("EngineErrorHandler"); - Includete questo file nei vostri script (include_once) e il gioco è fatto oltre ad avere l'errore loggato in un file in forma piu o meno XML avrete anche l'errore gestito a video ;)
Non male questo HOWTO vero? cmq. a breve modifichero il file affinchè si comporti come il sistema di Logging sotto JAVA (java.io.logging) che ho trovato molto valido. Ora mi rituffo nel php con l'editor a mio giudizio per ecellenza sotto linux : Eclipse e il suo magnifico plug-in TruStudio Php
0 Comments:
Posta un commento
<< Home