phpBuddy

Tutorials und Workshops

Wie kann man Daten in eine Datenbank schreiben und wieder auslesen? Wie schützt man sein Gästebuch vor Spam? Wie erstellt man eine Bildergalerie?
Diese und mehr Fragen werden in der Tutorial Rubrik sehr detailliert und leicht verständlich erklärt.

Sie sind hier: Startseite Fehlerbehandlung
Fehlermeldungen und Fehlerbehandlung - Fehler protokollieren
Beitragsseiten
Fehlermeldungen und Fehlerbehandlung
Error Reporting
Display Errors
Fehler protokollieren
Eigene Fehlerbehandlung
Exceptions
Fazit und Download
Alle Seiten

Error Log / Fehlermeldungen protokollieren

Wenn wir wie empfohlen Error Reporting und Display Errors deaktiviert haben, haben wir aber auch ein kleines Problemchen. Wir wissen nämlich nicht, ob Fehler auftreten und wo Fehler auftreten. Glücklicherweise hat PHP aber auch hier eine Lösung im Angebot. Wir können auftretende Fehler ganz einfach umbiegen, damit diese still und heimlich in ein Log (Protokolldatei) geschrieben werden. So können wir später analysieren, ob Fehler in unserer Anwendung auftreten, wo diese auftreten und ob es sich ggfs. um gezielte Angriffe handelt.
Das Schreiben in eine Protokolldatei findet in zwei Schritten statt:
1. PHP mitteilen das wir Fehler protokollieren möchten
2. PHP mitteilen wo sich unsere Logdatei befindet
Wie schon zuvor können wir dazu den Weg über die PHP.ini oder eine .htaccess Datei nehmen. In der PHP.ini sind beide Zeilen zu suchen und anzupassen:

log_errors = On
error_log = /pfad/zur/php/errorlog.txt

Die .htaccess-Variante sieht wie folgt aus:

php_flag log_errors On
php_value error_log /pfad/zur/php/errorlog.txt

Wichtig ist in beiden Varianten, dass die Logdatei bereits existieren muss und Schreibrechte hat, sonst kann es zu unliebsamen Überraschungen kommen!
Wir sehen in diesem .htaccess Beispiel noch etwas besonderes, nämlich das ein mal php_flag und ein mal php_value benutzt wird. Kurz zur Erklärung:
php_flag benutzt man immer dann, wenn ein PHP.ini Wert auf TRUE oder FALSE (On oder Off, 1 oder 0) gesetzt werden soll. php_value verwendet man dann, wenn ein String übergeben wird, wie z.B. hier der Pfad zur Logdatei.

Hat man das Logging aktiviert, kann man auch zur Laufzeit manuell Einträge in die Datei schreiben und sogar per Email verschicken. Dazu verwendet man die Funktion error_log(). Beispiel:

// Hängt eine Meldung an die Logdatei
error_log( "Es trat ein Fehler auf.\n", 3, "/pfad/zur/php/errorlog.txt" );
 
// Fehlermeldung per Email senden
error_log( "Es trat ein Fehler auf.", 1, "admin@domain.tld", "FROM: Fehlerreport<admin@domain.tld>" );

Fazit für Logdatei

Es ist sehr zu empfehlen eine eigene Logdatei zu verwenden, da man so schön kontrollieren und analysieren kann, falls Fehler aufgetreten sind. Wichtig ist natürlich, dass man auch regelmäßig die Logdatei nach Auffälligkeiten durchsuchst und ggfs. sofort aktiv wird, sobald etwas verdächtig erscheint!