Enige tijd geleden kreeg ik een script voorgeschoteld welke vol met fouten zat en absoluut niet netjes geprogrammeerd. Om de programmering nog wat lelijker te maken maar wel alle fouten op te sporen een simpel foutafhandelings scriptje toegevoegd. Eerst de foutmeldingen maar even uitgezet zodat de bezoekers hier niet meer mee gestoord werden:
<?php error_reporting(0); ?>
Vervolgens de volgende code toegevoegd om alle ernstige programmeer foutmeldingen op te vangen:
<?php //Foutmelding naar bestand schrijven function write_to_log($error) { //Error.txt openen en aan het einde toevoegen $open = fopen('errors.txt', 'a'); //Zoveel mogelijk vermelden $content = "DATE: ".date('H:i d-m-Y')."\n"; $content .= "URL: ".$_SERVER['REQUEST_URI']."\n"; $content .= "IP: ".$_SERVER['REMOTE_ADDR']."\n"; $content .= $error."\n"; $content .= "--------------------\n"; //Schrijven fwrite($open,$content); //Sluiten fclose($open); } //Callback voor set_error_handler function myErrorHandler($errno, $errstr, $errfile, $errline) { //Alle fout informatie vermelden $error = "ERROR NO: ".$errno."\n"; $error .= "ERROR: ".$errstr."\n"; $error .= "ON LINE: ".$errline."\n"; $error .= "IN FILE: ".$errfile; //Opslaan write_to_log($error); //Zorgen dat de foutmelding niet getoond wordt return FALSE; } //Callback voor set_exception_handler function myExceptionHandler($error) { //Opslaan write_to_log("ERROR: ".$error); //Zorgen dat de foutmelding niet getoond wordt return FALSE; } //Foutafhandeling "inschakelen" set_error_handler("myErrorHandler",E_ERROR | E_WARNING ); set_exception_handler("myExceptionHandler"); ?>
Op deze wijze werd er een log bijgehouden in errors.txt met daarin alle nodige informatie om de foutmeldingen op te sporen!