404 Fehlerseite mit E-Mail Benachrichtigung erstellen

404 Fehler mag niemand auf seiner Homepage haben aber wie merkt man es ohne aufwendiges Tracking und Recherchen in seinem Analytics?

Eigentlich geht es ganz einfach, die einzigen Voraussetzungen sind aktiviertes Mod Rewrite und die Verwendung von eigenen Fehlerseiten und PHP Unterstützung. Dies könnte unter Umständen durch seinen Hoster verboten sein.

Als erstes brauchen wir eine eigene Fehlerseite. dazu können wir einfach PHP Datei im Webroot erstellen. Um es übersichtlich zu halten, nennen wir diese 404.php .

In diese PHP Datei packen wir jetzt ganz einfach ein HTML Grundgerüst wie dieses hier

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
<meta http-equiv=”Content-Type” content=”text/html; charset=utf-8″ />
<title>404 Fehler</title>
</head>

<body>Dies ist eine 404 Fehlerseite
</body>
</html>

Das Ergebnis ist eine weiße Seite mit dem Text “Dies ist eine 404 Fehlerseite”. Die kann man nun gestalten wie man mag. Sollte man zu Faul zum Coden sein oder nicht das nötige Know How haben, kann man auch mit Word oder Dreamwaver eine HTML Seite erstellen. So habe ich es zum Beispiel auch gemacht. Einfach mittels Microsoft Word auf die schnelle eine HTML Seite erstellt die ich selbst verwende. Es geht einfach schneller 😉

Meine eigene 404 Fehlerseite stelle ich hier als Download bereit. Es ist dort auch eine Weiterleitung auf meine Startseite eingebaut. Diese tritt nach 9 Sekunden ein und leitet auf die Startseite meines Blogs. Die in dem Archiv enthaltenen Dateien müssen lediglich auf euren Webspace übertragen werden und dann über http://eure-domain.de/404.php aufrufbar sein. 

Download hier

Aber wie bekommt nun eine E-Mail wenn ein 404 Fehler auftrat?

Dazu muss man in dieses HTML Gerüst einfach ein paar PHP Zeilen einfügen, die mittels der PHP Mail Funktion eine E-Mail verschicken.

Folgender Code muss im HTML Code zwischen den <body> und </body> Tags

<?
// Fehlercode
$fehlercode = “404“;

// Adresse, an welche die E-Mail versendet werden soll
$empfaenger = “deine@mail.adresse“;
$betreff = “[” . $_SERVER[“SERVER_NAME”] . “] Fehler ” . $fehlercode;

// Nachricht zusammenbauen.
$message = “Auf der Website http://” . $_SERVER[“SERVER_NAME”] . ” ist ein ” . $fehlercode . ” Fehler aufgetreten.\n”;
$message .= “Aufgerufene Ressource:\n”;
$message .= “http://” . $_SERVER[“SERVER_NAME”] . $_SERVER[“REQUEST_URI”].”\n”;
$message .= “User-Agent:\n”;
$message .= $_SERVER[“HTTP_USER_AGENT”];
if($_SERVER[“HTTP_REFERER”] != “”) {
$message .= “nnAufgerufen von der Adresse:\n”;
$message .= $_SERVER[“HTTP_REFERER”];
}

// Header-Informationen
$header = “From: Error Agent@” . $_SERVER[“SERVER_NAME”].”>n”;
$header .= “Content-Type: html”;

// Mail zusammenstellen und absenden
@mail($empfaenger, $betreff, $message, $header);
?>

Hier muss lediglich die Mail Adresse, an die eine Benachrichtigung gesendet werden soll, eingetragen werden. Die entsprechende Stelle ist Rot markiert.

Das Script kann man natürlich adaptieren und für jede Fehlermeldung verwenden. Dazu muss lediglich der blaue Bereich angepasst werden um auch einen Aussagekräftigen Betreff zu bekommen.

Die Seite muss dann natürlich noch auf den Webspace geladen werden.

Ruft man nun im Browser die Seite auf, so bekommt man die schöne weiße Seite und eine E-Mail mit dem Inhalt das die Seite aufgerufen wurde, von wo der Besucher kam usw.

Es sollten alle Informationen enthalten sein um eine Fehleranalyse durchführen zu können und den Fehler schnellstmöglich zu beheben.

Doch wie sage ich nun dem Server damit er diese 404 Seite anstelle der eigenen verwenden soll?

Das geht mit Mod Rewrite und einer Zeile in der .htaccess Datei. Solltet Ihr keine .htaccess Datei haben, dann legt diese einfach an. Um die eigene Fehlerseite zu verwenden muss der Eintrag

ErrorDocument 404 /404.php

Damit weiß der Webserver damit er diese Seite anstelle der eigenen Fehlerseite verwenden soll.

Diese Fehlermeldungen solltet Ihr auf jeden Fall behandeln.

Fehlercode Statustext Beschreibung
401 Unauthorized Der Benutzer benötigt eine Autorisierung, ohne die er keinen Zugriff auf die Ressource hat.
403 Forbidden Nicht öffentlicher Bereich, auf den der Benutzer keinen Zugriff hat.
404 Not Found Die Ressource wurde unter dem angegebenenURI nicht gefunden.
410 Gone Unter dem angegebenen URI ist keine Ressource mehr erreichbar und es ist keine Weiterleitungsadresse bekannt.

 

Richtlinien für Fehlermeldungen 

Hilfreiche Fehlermeldungen sind auffällig, verständlich und höflich formuliert, beschreiben das Problem präzise und geben konstruktive Hinweise, wie der Fehler zu beheben ist.

Fehlermeldung auffällig gestalten

Die Aufgabe von Fehlermeldungen ist es, den Nutzer darauf aufmerksam zu machen, dass etwas schief gelaufen ist. Gestalten Sie Ihre Fehlerseiten so, dass sich die eigentliche Fehlermeldung deutlich und auffällig präsentiert und klar ausdrückt, dass ein Fehler aufgetreten ist.

Fehlermeldungen verständlich formulieren

Fehlermeldungen sollten auch dann verständlich sein, wenn die technischen Zusammenhänge nicht bekannt sind. Die meisten Benutzer können mit einer allein stehenden Meldung »Fehler 404« nichts anfangen. Besser ergänzen Sie sie durch eine verständliche Ergänzung wie beispielsweise »Seite nicht gefunden«.

Fehlermeldungen höflich formulieren

Wählen Sie bei Ihren Fehlermeldungen eine Formulierung, die den Besuchern nicht das Gefühl gibt, sie hätten einen dummen, vermeidbaren Fehler begangen. »Seite nicht gefunden« beschreibt den vergeblichen Aufruf einer Ressource neutraler als »Fehlerhafte Eingabe« oder eine ähnlich offensive Formulierung.

Fehler präzise beschreiben

Treffen Sie eine klare Aussage darüber, welcher Fehler aufgetreten ist. Es kann einen Unterschied machen, ob eine Ressource unter einem URI noch nie erreichbar war oder lediglich aus irgendeinem Grund nicht mehr erreichbar ist.

Konstruktive Hilfestellungen anbieten

Fehlermeldungen dienen nicht nur dazu, Nutzer darauf aufmerksam zu machen, dass ein Fehler aufgetreten ist, sondern sie sollten dazu beitragen, den Fehler zu beheben.

 

Share it!Share on FacebookEmail this to someoneShare on Google+Tweet about this on Twitter

Schreibe einen Kommentar