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
- Der folgende Link führt zu einem Beispiel-Formular, in dem Daten eingegeben werden: cgi.xwolf.de/misc/update_formular.shtml
- Dieser Link führt auf die Zieldatei, in der der neue Beitrag gespeichert wurde: cgi..xwolf.de/misc/update_zielseite.html
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:
|
| 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:
|
| 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. |


