Scripts
Catch fatal error
Vangt fatale foutmeldingen op om vervolgens een gebruiksvriendelijke foutmelding weer te geven. Let op : een die; of exit; zorgt ook voor een catch! Let op : een fatal error in test.php zelf kan niet opgevangen worden!
catch-fatal-error
test.php
<?php
// onherstelbare fouten opvangen
global $websitePrinted;
// de functie shutDown wordt uigevoerd wanner php stopt met parsen
register_shutdown_function('shutDown');
// de website is nog niet geprint
$websitePrinted = false;
// buffer start
ob_start();
// pagina includen welke een fatale error veroorzaakt
include('fatalError.php');
// buffer legen
ob_end_flush();
// website is bij deze geprint
$websitePrinted = true;
/**
* Deze functie wordt aangeroepen zodra php stopt met parsen.
* Na het printen van de pagina wordt de globale variabele
* $websitePrinted op true gezet. Mocht deze false zijn
* dan is er een fatal error opgetreden
*/
function shutDown() {
// variabele $websitePrinted globaal maken
global $websitePrinted;
// indien de website niet geprint is, en dus een fatal error heeft veroorzaakt
if (!$websitePrinted) {
// buffer legen om de foutmelding te onderdrukken
@ob_clean();
// gebruiker op de hoogte brengen van het foutje
print 'sorry bezoeker, er is iets ernstig mis gegaan';
// laatste foutmelding ophalen
$error = error_get_last();
// mailtje sturen zodat je het op kan gaan lossen
mail('[email protected]', 'fatal error ontstaan', 'laatste foutmelding : '.print_r($error, true));
}
}
?>
fatalError.php
<?php
ljsdh y8s 34; 6lowu84 y5 'W 0VE= RT ;
?>
Reacties
0