09 08 2007 Nils Hitze
Heute zeige ich ein Beispiel, wie man in PHP "Fatal Errors" besser handeln kann. Folgende beispiel nutzt die error_prepend_string und error_append_string um mehr aus ein Fehler zu machen, und funktioniert auch beim timeout, wo i.d.r. nichts mehr als der typische "Fatal Error...." aus PHP kommt. Man braucht ausser diese linien eine Datei (hier fatal_error.php genant) die nach dem fehler aufgeruft wird. Dort kann man z.B. ein E-Mail schicken und eine bessere HTML Seite an die Benutzer zeigen.
Kommentar :
1 Kommentar »
/**
Show an error page when a fatal error ocurrs
pre-/appends an HTML form to a PHP error to be able to redirect to a user-
friendly error page.
@param string $errorPage Path to the custom error page where the user
should be redirected to
@return void
*/
function catchFatalErrors($errorPage = 'fatal_error.php')
{
// error display needs to be turned on
ini_set('display_errors','On');
// Prepend a non displaying DIV element to hide the error message and
// store the PHP error in a hidden field
$phperror = '<div id="phperror" style="display:none">'.
'<form method="POST" action="'.$errorPage.'" name="FatalError">'.
'<input type="hidden" name="hiddenErrorMsg" value="';
ini_set('error_prepend_string', $phperror);
if (file_exists($errorPage)) {
// Append javascript code which submits the form to the custom error page, if the error page exists
$phperror = '"></form></div>'.
'<script type="text/javascript">'.
'document.forms['FatalError'].submit();'.
'</script>';
} else {
// If error page does not exist hide the PHP error message and display
// a customized error text
$phperror = '"></form></div>'.
'A critical error occurred, please contact support.';
}
ini_set('error_append_string', $phperror);
}
// This calls the function to enable the functionality
catchFatalErrors('framework/modules/main/fatal_error.php');
Kategorien : Coding
Trackbacks : Keine Trackbacks »
Tags für diesen Artikel: Coding

Trackbacks
Keine Trackbacks