von Thomas Salvador.
|
|
Teil 1 |
Das Programm erhält die relevanten Daten über Umgebungsvariablen:
Logging oder Mailing geschieht nur dann, wenn es sich um einen Fehler auf der Site handelt. Tippfehler im URL u.ä. werden also nicht protokolliert, da Sie für den Master unerheblich sind.
Handelt es sich um einen zu bearbeitenden Fehler (Ist der Referer nicht-leer), so wird je nach Konfiguration mailit() und/oder logit() aufgerufen. mailit() generiert eine Mail an $mailaddy, die Kurz und knapp die Daten enthält.
logit() hängt die Zeile $fehlerno|$referer|$requested an das LogFile an, wobei man sich natürlich klarmachen muss, dass die $... die Variablen mit den entsprechenden Werten sind. Der vertikale strich ist oft ein ideales Trennnzeichen, da er in Werten selten vorkommt. So auch hier. Prinzipiell kann man natürlich auch etwas anderes wählen.
Beispiel:
404|/test.html|/verzeichnis/gibesnicht.html
würde einen Fehler 404 zeigen. Der Link von test.html auf gibesnicht.html im Verzeichnis verzeichnis ist ungültig.
Nunja, die Dateien gibt es allesamt nicht.
Was auch immer gemacht oder nicht gemacht wurde, das Programm endet damit, dass es zur entsprechenden Fehlerdatei verweist, die wir schon für den ersten Teil der Serie der Serie erstellt hatten.
Um ein Programm für alle Fehler zu haben und gleichzeitig die Konfiguration zu minimieren, benutzt das Programm ein fixes Namensmuster für die Dateien.
$response verweist auf das Verzeichnis, in dem die Dateien liegen (z.B. http://www.example.org/fehler/ -- mit Schrägstrich am Ende). $fileext gibt die verwendete Dateerweiterung an. Beispiele sind ".html", ".shtml" oder auch ".php3" oder was Sie gerade benutzen. Daraus ermittelt das Programm:$response$fehlerno$fileext
also z.B.
http://www.example.org/fehler/404.html http://www.example.org/fehler/403.shtml http://www.example.org/fehler/500.php3
je nachdem, was Sie eingestellt haben und welche Fehlernummer gerade vorliegt.
Um das Programm zu benutzen, installieren Sie es zunächst, wie Sie jedes CGI installieren. Passen Sie dazu den oberen Bereich des Programms entsprechend an (Pfad zu Perl, Pfad zu Sendmail, sonstige Konfiguration). Achten Sie darauf, dass der Upload im ASCII-Modus geschieht, da es sonst nicht funktionieren wird. Ich gehe davon aus, dass Sie dass Script logerr.pl genannt haben. Ansonsten müssen Sie die Installation Ihrer Namenwahl entsprechend anpassen. Die Rechte des Scriptes müssen 755 sein.
Nun muss die Datei .htaccess im Hauptverzeichnis Ihres Servers (analog zum ersten Teil) angepasst werden.
Für jeden Fehler, für die Sie eine Fehlerseite angefertigt haben, fügen Sie die Zeile
ErrorDocument ### /cgi-bin/logerr.pl?###
in .htaccess ein, wobei ### die Fehlernummer ist. Z.B.
ErrorDocument 401 /cgi-bin/logerr.pl?401 ErrorDocument 402 /cgi-bin/logerr.pl?402 ErrorDocument 403 /cgi-bin/logerr.pl?403 ErrorDocument 404 /cgi-bin/logerr.pl?404 ErrorDocument 500 /cgi-bin/logerr.pl?500
Für jeden Fehler xyz kann es natürlich nur einen ErrorDocument-Eintrag geben.
Das können Sie so ausprobieren. Bei einem direkten Aufruf einer nichtexistierenden Datei, sollte die 404er Fehlerdatei kommen. Über einen Link aufgerufen, sollte es Mail und/oder Logeintrag geben.
Fehlt der gewünschte Logeintrag, uploaden Sie eine leere LogDatei an ihre Stelle und setzen Sie ihre Rechte auf 666. (Manche Server erzeugen nicht vorhandene Dateien, wenn man Sie mit >> öffnet, andere eben nicht.)
|
|
Teil 1 |
