Mathias: Kontrollseite, die Website überwacht

ich habe auf meiner homepage ein forum, das eigentlich relativ stabil läuft, aber dennoch hin und wieder ausfällt. das wär dann natürlich dumm, wenn die besucher den toten link vorfinden.

wie kann ich eine art kontrollseite einrichten, die überwacht, ob das forum (besteht aus php) noch online ist und wenn es nicht der fall sein sollte, automatisch eine error.html o. ä. anzeigt?

gruß, mathias

  1. Hallo mathias,

    eine Lösung in PHP könnte folgendermaßen aussehen:
    $forum_uri="http://www.myforum.de/forum/index.php";
    $forum=@fopen($forum_uri, "r");
    if ($forum) {
     echo("Besuchen Sie auch mein <a href="$forum_uri">Forum</a>!");
     fclose($forum);
    }
    else
     echo("Das Forum ist zur Zeit leider nicht verfügbar, probieren Sie es später noch ein Mal.");

    Erklärung: Die Funktion fopen() versucht, eine Verbindung mit dem in $forum_uri angegebenen Webserver herzustellen und fordert anschließend die Seite (hier: /forum/index.php) an. Die Funktion gibt im Fehlerfall NULL zurück, z.B. bei Nichtvorhandensein der Seite (404). Das @ vor dem Funktionsnamen dient nur dazu, dem Besucher die Fehlermeldungen zu ersparen, welche wir von vornherein vermeiden wollten ;-)

    Natürlich kannst Du die HTTP-Aufrufe auch über Sockets manuell tätigen, aber fopen() sollte für einfache Ansprüche genügen.

    Das Problem daran ist allerdings, dass Dateitransfers von fremden Addressen auf den Webserver Zeit kosten, die sich beim Besucher in langsamen Seitenaufbau äußert. :-(

    Dies könnte man umgehen, indem man die Verfügbarkeit des Forums nur in bestimmten Zeitabständen überprüft und die Ergebnisse in einer Datei speichert. Dann besteht allerdings das Risiko, dass mehrere Besucher dennoch einen Deadlink vorfinden. Neben der Zeit könnte daher auch die Besucherzahl ausschlaggebend für eine Neuüberprüfung sein.
    In jedem Falle muss ein Kompromiss gefunden werden...

    bye

    • Johannes