brauchbar.de - WebDesign, Programmierung,Development in HTML, CSS, Javascript, PHP, Perl und mehr

[ Startseite | Artikel : HTML · JavaScript · CSS · Perl · Usability · Sonstiges | Services | Über ]


verwandte Artikel und Seiten

Eigene Fehlermeldungen und was man mit ihnen anfangen kann II -- PERL

von Thomas Salvador.

Einführung

Im Artikel "Eigene Fehlermeldungen und was man mit ihnen anfangen kann" hatte Friedemann Lindenthal gezeigt, wie man die Standardfehlermeldungen des Servers durch beliebig designte Dateien ersetzen kann. Damit war es nicht nur möglich, weitere Erklärungen zu liefern, sondern insbesondere die Seiten auch völlig an das eigene Sitedesign anzupassen. Friedemann ließ blanke HTML-Dateien darstellen, wies jedoch bereits darauf hin, dass dies keineswegs notwendig oder irgendwie erforderlich sei.

Wir verfolgen im zweiten Teil daher einen anderen Ansatz und lassen bei Fehlern ein Programm ausführen.

Arbeitet man mit HTML-Dateien, so hat das Vor- und Nachteile. Der klare Vorteil sind eigene Dateien. Der Nachteil ist, dass es keinen Status 404 "Datei nicht gefunden" mehr gibt, da nunmehr immer eine Datei geliefert werden kann, entweder die angeforderte oder aber die Fehlerdatei.

Dies führt dazu, dass die übliche Übersicht der Dateien, die angefordert wurden, aber nicht lieferbar waren, verschwindet. Siteanalysen werden dadurch erschwert.

Erste Lösung

Man kann mit der HTML-Variante arbeiten, benötigt dann aber einen Logfile-Analysator, der einem die Frage "Woher kamen die Links auf meine Fehlerdatei?" vernünftig beantworten kann. Diese Antwort besteht aus Dateien mit vielleicht einem (oder mehreren) ungültigen Link(s). Zumindest vielleicht. Technische Störungen oder Überlastung lassen auch vorhandene Seiten 404 melden, so dass der einfache Neuversuch die gewünschte Seite manchmal erscheinen lässt.

Zweite Lösung

Man verwendet statt der HTML-Variante ein Programm, welches die Fehlerdaten in einem separaten LogFile protokolliert. Diesen Ansatz werden wir verfolgen.

Das Programm

wird in Perl formuliert und kommuniziert über das CGI. Zunächst der Source:

#!/usr/bin/perl

## konfiguration ------------------------------------------

$mailerror=1; # soll der fehler gemailt werden?
              # 0 - nein, 1 - ja
$mailaddy="ihremail\@example.org";

$logerror=1;  # soll der fehler gelogged werden?
              # 0 - nein, 1 - ja
$logfile="./errors.log";

## das mailprogram ----------------------------------------

$MAILPROG="/usr/lib/sendmail";

## die antwortseiten --------------------------------------

$response="http://www.example.org/fehler/";
$fileext=".html";

##################################################################
## nichts mehr zu aendern.

$fehlerno = $ENV{'QUERY_STRING'};
$referer  = $ENV{'HTTP_REFERER'};
$requested= $ENV{'REQUEST_URI'};

if (!($referer eq "")) {
  if ($mailerror==1) {
    &mailit();
  }

  if ($logerror==1) {
    &logit();
  }
}

print "Location: $response$fehlerno$fileext\n\n";

sub mailit() {

  open (SM, "| $MAILPROG -t")|| die ("kann $MAILPROG nicht oeffnen");

  print SM "From: $mailaddy\n";
  print SM "To: $mailaddy\n";
  print SM "Subject: Fehler $fehlerno auf Site\n\n";

  print SM "Fehler: $fehlerno\n";
  print SM "   von: $referer\n";
  print SM "  nach: $requested\n";

  close (SM);
}


sub logit() {

  open (F, ">>$logfile") || return;

  print F "$fehlerno|$referer|$requested\n";
  close (F);

}
Teil 2 weiter


Verwandte Artikel und Seiten



brauchbar web
Diese Site anlinken. Artikel zu CSS | HTML | JavaScript | Perl | Usability | Sonst. | nach Ausgabe.

Copyright © 1999-2015 Thomas Salvador und brauchbar.de . Alle Rechte vorbehalten. Gehostet bei all-inkl.
Reproduktion, ganz oder in Teilen, nur mit schriftlicher Zustimmung von Thomas Salvador. Impressum · Datenschutzerklärung · Kontakt.

zum Inhaltsverzeichnis der 26. Ausgabe.

Linken Sie bitte zu der festen Adresse http://www.brauchbar.de/wd/artikel/88.html .