PHPGangsta - Der praktische PHP Blog

PHP Blog von PHPGangsta


Archive for the ‘Warning’ tag

Auf Warnings, Notices und sogar Fatal Errors reagieren

with 14 comments

In besonders kritischen Scripten baue ich gern zur Sicherheit noch eine erweiterte Log-Funktion ein, die auch noch aufgerufen wird bei einem FATAL ERROR oder bei einem exit() oder die() in einer Fremdbibliothek (pfui). Man kann so auch beim Vorkommen einer Notice das Script beenden, das kann manchmal sehr sinnvoll sein. Natürlich kann man mit Hilfe der error_log Einstellung in der php.ini und einem error_reporting „E_ALL^E_STRICT“ diese Fehler auch wegloggen, aber man ist nicht flexibel wenn man im Code darauf reagieren möchte. Beispielsweise könnte es sein dass bei einem FATAL ERROR noch etwas aufzuräumen ist, damit kein Müll hinterlassen wird.

Nehmen wir folgendes Beispiel:

<?php
register_shutdown_function('shutdownFunction');
function shutDownFunction() {
    $error = error_get_last();
    if ($error['type'] == 1) {
        // log error to syslog, send email or sms, this should not happen!
    }
}

echo nonExistingFunction();

Bei sauberem Code sollte das natürlich nicht passieren. Aber es gibt Situationen in denen ein Fatal Error passieren kann, wenn man beispielsweise eine Funktion aufruft mittels call_user_func() ohne eine vorherige is_callable() Prüfung, oder oder.

OK, nächstes Beispiel:

Weiterlesen »

Written by Michael Kliewe

Juli 12th, 2011 at 9:29 am