xwolf.de|com

Menü

Inhalt dieser Site

Ansicht

Individuelle Benutzerkonfiguration für die Site.

Druckansicht Startseite Suchen

A A A A

Seiten-Update

Mit Hilfe dieses Skriptes läßt sich eine vorgegebene Seite online in bestimmten Bereichen ändern. Dabei werden neue Einträge, welche einem vorgegebenen Layout folgen, in die Zieldatei geschrieben ohne daß der Benutzer HTML-Code eingeben muß.
Das Skript eignet sich damit besonders gut für Newsseiten, aber auch als Gästebuch.

Source Code und Beispiel-Datendateien


Perl Sourcecode
update.pl Das Skript update.pl
web.pm Das Perlmodul web
Konfigurations- und Styledateien
update_formular.html Beispiel Eingabe-Datei
update_eintrag.html Beispiel Eintragslayout
update_zielseite.html Beispiel Ausgabedatei
errorlayout.html Beispiel Fehlerlayout
Achtung: Sollte beim obigen Download-Link fehlerhafterweise als Dateiname "xload.cgi" angegeben sein, ignorieren Sie dies und benennen den Dateinamen um. Einige Browser ignorieren leider den Standard zur Übermittlung von Dateinamen...


Wirkungsweise


Installation

Kopieren Sie die Datei update.pl in Ihr CGI-BIN-Verzeichnis. Setzen Sie die Ausführungsrechte mittels CHMOD. Z.B.: chmod 755 update.pl.
Ändern Sie im Programm folgende Zeilen:

Zeile 1: #!/local/bin/perl5 geben Sie hier Ihren eigenen Pfad zu Perl ein, falls er von diesem abweicht.
Zeile 27: use lib '/mein/eigenes/perlmodul/verzeichnis'; Sollten Sie das Modul web.pm in Ihrem Perl Library Verzeichnis installiert haben, können Sie diese Zeile auskommentieren oder löschen. Ansonsten geben Sie hier den Pfad zu der Datei web.pm an.
Zeile 30: $EINTRAG_LAYOUT = "/pfad/zu/der/datei/update_eintrag.html"; Diese Variable weist auf eine Datei, in der das Aussehen/Layout des neuen Eintrages festgelegt wird. Es handelt sich dabei um eine ganz normale HTML-Datei, wobei aber lediglich die Eingabedaten aus dem Formular als Platzhalter aufgefuehrt werden. Damit diese Platzhalter vom Programm erkannt werden, werden sie von den Kreuz-Zeichen umgeben. Z.B.: die Eingabevariable 'feldname' wird in der Layoutdatei durch den Platzhalter '#feldname#' definiert.
Vorgehen: In dem Eingabeformular, welches Sie selbst erstellen, wird durch den HTML-Tag die Variable eingegeben. Wenn Sie diese auch in der Layout-Datei ausgeben wollen, dann muessen Sie dort nun ebenfalls ein Eintrag #feldname# ablegen, worin dann der im Formular eingegebene Wert gespeichert wird.
Die Layout-Datei muss fuer den Webserver lesbar sein! Platzhalter, welche in der Layout-Datei vorkommen, aber nicht im Formular eingegeben wurden, werden in der Zieldatei nicht angezeigt.
Zusaetzlich zu den eingegebenen Variablen aus dem Formular koennen Sie auch noch folgende Standard-Werte durch Platzhalter ausgeben lassen:
  • #ENV_(Name)# - Fuer die Verfuegbaren Environmentvariablen des Webservers
  • #entry_zeit# - Zeit des Eintrags
  • #entry_wochentag# - Wochentag des Eintrags
  • #entry_datum# - Datum des Eintrags
Zeile 57: $TARGET_FILE = "/pfad/zu/der/datei/update_zielseite.html"; In dieser Datei wird ein neuer Eintrag gesichert. Der neue Eintrag wird durch das Eintrags-Layout, welches durch die obige Datei und den Eintraegen festgelegt wurde, definiert.
Diese Datei muss fuer den Webserver les- und schreibbar sein!
Zeile 63: $EINTRAGS_MARKE_START = "<!-- NEW_ENTRY: START -->"; Damit das Programm weiss, an welcher Stelle in der Zieldatei der neue Eintrag erfolgen soll, muss diese ebenfalls ein Platzhalter besitzen. Da die Zieldatei aber gleichzeitig schon aus dem Web betrachtbar sein soll, muss dieser Platzhalter ein HTML-Kommentar sein, damit er vom Browser nicht angezeigt wird.
Dieser Kommentar muss auf alle Faelle in der Zieldatei vorhanden sein; Andernfalls kann der neue Eintrag nicht eingebaut werden und es kommt zu einer Fehlermeldung.
Zeile 73: $EINTRAGS_MARKE_ENDE = "<!-- NEW_ENTRY: END -->"; Falls die Eintraege auch geloescht werden sollen, muss das Programm wissen, bis zu welcher Stelle es loeschen darf (weil dahinter ja noch andere HTML-Tags und Texte kommen koennen). Dieser Kommentar in der Zieldatei legt dies fest.
Beachten Sie, dass fuer den Fall, das alte Eintraege durch neue ueberschrieben werden sollen, dieser Kommentar aber nicht vorhanden ist, die Ersetzung bis zum Ende der HTML-Datei durchgefuehrt wird.
Zeile 83: $EINTRAGS_MODI = 2; Dieser Wert legt fest, wie mit neuen Nachrichten verfahren wird:
  • 0: Die Nachricht wird einfach UNTERHALB des Kommentars $EINTRAGS_MARKE_START im Zieldokument eingefuegt.
  • 1: Die Nachricht wird einfach OBERHALB des Kommentars $EINTRAGS_MARKE_START im Zieldokument eingefuegt.
  • 2: Die neue Nachricht loescht eine alte vorhandene Nachricht, welche zwischen den Kommentaren $EINTRAGS_MARKE_START und $EINTRAGS_MARKE_ENDE sein sollte. Falls $EINTRAGS_MARKE_ENDE nicht vorhanden sein sollte, wird der neue Eintrag bis zum Ende der datei eingefuegt.
Zeile 94: $DONE_URL = "http://cgi.xwolf.de"; Geben Sie hier die URL ein, zu der der Benutzer geleitet werden soll, nachdem er die Eingabe gemacht hat. Wird hier nichts eingegeben, wird die Seite genommen, von wo das Skript aufgerufen wurde, also das Eingabeformular.
Zeile 99: $LOGFILE = "update.log"; Logdatei fuer Zugriffe und fehlerhafte Passworteingaben Falls kein Protokoll gefuehrt werden soll, reicht es, diese Variable auszukommentieren.
Zeile 103: $FEHLER_LAYOUT = ""; Möchten Sie für die Fehlerausgaben ein eigenes Design verwenden, können Sie dies in der angegebenen Datei machen. Sehen Sie hierzu auch die oben gelinkte Beispieldatei.
Achten Sie darauf, daß der Webserver diese Datei lesen kann.

Info

$Id: update.shtml,v 1.4 2003/06/12 13:41:02 xwolf Exp $, Linkcount: 1
© 1996 - 2003 by xwolf