Guestbook (1)
Das Gästebuch ist auf den ersten Blick nur noch eins, der bereits im Netz angebotenen Gästebüchern. Aber es kann mehr. Mit diesem Skript ist es möglich, mehrere Bücher gleichzeitig zu verwalten. Zusätzlich sind die Benutzer in der Lage das Design ihres Buches relativ frei zu gestalten. Man ist nicht auf eine bestimmte Form angewiesen, wie sie von anderen bekannten Skripten vorgegeben wird.
Ein weiterer Vorteile dieses Skripts ist, daß der Benutzer in der Lage ist zwischen 2 verschiedenen Eingabeformen zu wählen: Der eigenen Form, oder einer, die das Skript ermöglicht. Außerdem besitzt das Skript eine Preview-Funktion.
Alles was das Gästebuch benötigt sind 2 Dateien, wovon
die eine die Datenfile ist, in der alle Einträge geschrieben werden,
und das andere eine Datei, in der die Benutzereigenen Einstellungen
stehen.
Der Benutzer ist in der Lage, alles seinen Wünschen
anzupassen. Sowohl Hintergrundbilder, Trennzeilen, Texte wie auch
Counter usw.
Source Code
| Perl Sourcecode | |
| guestbook.pl | Das Hauptprogramm |
| cgi-library.pl | Library zum Programm |
| Konfigurations- und Styledateien | |
| guestbook.var | Standardeinstellungen eines Gästebuches. |
Wirkungsweise
Hinweis: Laut der Entscheidung des Landgerichts Trier vom 16.05.2002 ist ein Betreiber eines Gästebuches verpflichtet, dieses regelmäßig auf rechtswidrige Eintragungen zu überprüfen.Bei einer rein privat betriebenen Webseite reiche, nach Meinung des Gerichts, eine wöchentliche Überprüfung.
Als alleiniger Betreiber dieser Website, der mehrere Hundert E-Mails pro Tag bekommt und einen Haufen an Arbeit hat und durch die Bannerschaltung nicht mehr privat ist, kann ich mir eine so häufige Überprüfung eines Beispielgästebuches weder zeitlich, noch finanziell (bei Vertretung) leisten.
Aus diesem Grund war ich gezwungen das Testgästebuch abzuschalten.
Aufruf
Der Aufruf des Programmes erfolgt durch die Angabe seiner Location auf dem Verzeichniss:http://www.example.org/cgi-bin/guestbook.pl (bzw. die Location, in der die Files ablegt sind.)und der Angabe zweier Parameter:
- rw=read/write - Mit rw=read werden alle Einträge des Gästebuches gelesen, mit rw=write kann ein neuer Eintrag gemacht werden.
- varfile=(filename) - Hier geben Sie ein Datei an, in der alle wichtigen Einstellungen Ihres Gästebuches stehen müssen. Siehe unten.
Die Einstellungen
Dies sind die Einstellungen der Variablendatei: (Kopie meiner eigenen Datei)
# After this point the parameters are starting. bodytag== # Here you can define the background of the page. An URL-address. titel==Beispiel Gästebuch (1) # The title of the guestbook. top== # What you want to see above the title. Maybe an icon... pre_text==Hier können Sie die vorhandenen Nachrichten lesen und auch entry_ask==eigene Einträge schreiben. past_text==Bitte beachten Sie aber, daß dies nur ein Beispiel-Gästebuch ist. Diskussionen auf diesem Gästebuch werden nicht verfolgt oder beantwortet. # This is the message, which is displayed above the guestbook-data. # entry_ask is the text, with the link to the input of new entries, why pre_text # and past_text are surrounding this field. bottom==
Zurück zur Beschreibung des Gästebuches # What you want to see at the end of the page. book==guestbook1.dat # The file of the guestbook-entries. Must be (chmod a=rw) forbit_html==0 # If set to 1 , no html-tags are allowed. Else set 0. counter==0 # 1 makes the counter on, 0 off, 2 sets the improved counter on allow_home==1 # If 1 , the user can give his homepage too, else 0 language==english # You can set it to 'english' or to 'german' seperator==
# How you want to part different messages...or
need_mail==0 # If the author is forced to give his email-address answer_mail==0 # If an mail will send to the author after his entry. Not yet ready add_beginning==1 # If 1 is set the new entry will be insert at the top of the document italic==1 # 1 or 0. If 'on' the input will be displayed italic. ACCESS==751 # The number of the accesses to this page. Will add 1 only if its # a read-call. tempfile1==guestbook.tmp1 tempfile2==guestbook.tmp2 # These both files are for internal use. If you don't set them, the # default files will be used, which may be used also by many other users. # This could lead to the problem, that messages of other books will be saved # on your board, or messages will go lost before saved. # Script was made by Wolfgang Wiese, xwolf@xwolf.de
Sie können ruhig einige dieser Parameter weglassen, mit Ausnahme von
titel, book, counter, language, counter und ACCESS. Alle anderen werden dann auf default-Werte gesetzt. Sie sollten dann jedoch den Counter auf 1 stellen, da dann die Variablendatei neu geschrieben wird und alle default-Parameter eingetragen werden. Danach können die Parameter jederzeit wieder geändert werden.
Diese Vorgehensweise ist etwas komfortabler.
Achtung!
Da die Einträge in einer Datei auf Ihrem Verzeichniss geschrieben werden sollten, müssen Sie diese schreib- und lesbar machen: CHMOD a=rw (Dateiname). dasselbe gilt fuer die Variablendatei. Bei dem ersten Aufruf des Programmes sollte die Datei, in der die Einträge geschrieben werden, leer sein!
Benötigt werden folgende Dateien:
- Eine Variablendatei. Siehe oben. Schreib- und lesbar.
- Eine (anfangs leere) Daten-Datei für die Einträge. Schreib- und lesbar.
- Sofern der Hidecounter benutzt wird 2 Dateien, welche den Namen der Daten-Datei plus der Endung '.count' bzw. '.ignore' bekommen. Die '.count'-Datei muss schreib- und lesbar sein, die '.ignore' nur lesbar. Ausserdem muss eine lesbare Datei erstellt werden, welche gegebenenfalls den Namen von logins enthält, welche die volle Host-information des Counters bekommen sollen. Siehe hierzu auch: Der versteckte Counter (Zugriffszähler).
Installation
Ändern Sie folgende Zeilen entsprechend Ihrer Server-Einstellungen ab:
| Zeile 1 |
#!/local/bin/perl5
Tragen Sie hier Ihren Pfad zu Perl ein. |
| Zeile 22 |
require "cgi-library.pl";
Tragen Sie hier den vollen Pfad zu der cgi-library.pl ein, wenn diese Datei sich nicht im selben Verzeichnis wie das Skript befindet. Installationsanleitung zur cgi-library.pl finden Sie auf http://cgi.xwolf.de/lib/cgi-library.shtml |
| Zeile 27 |
$guestbook_log ='guestbooks.dat';
Geben Sie hier ein default-Pfad an, wo nach der Log-Datei gesucht wird, in der alle Gästebücher auf dem Server ihre Status-Meldungen schreiben. |
| Zeile 28 |
$guestbook_helppage='http://cgi.xwolf.de/cgi/guestbook.shtml';
Hier steht die URL zu einer Seite, in der die Bedienung des Gästebuches beschrieben wird. Diese wird angegeben, wenn das Skript mit falschen Parametern aufgerufen wurde. |
| Zeile 27 |
$progurl = 'http://cgi.xwolf.de/cgilocal/guestbook1/guestbook.pl';
Geben Sie hier die komplette URL an, mit der das Gästebuch addressiert werden kann. |
| Zeile 30 und 31 |
$tempfile = 'guestbook.tmp1';
Diese Dateien sind für den internen Gebrauch. |
| Zeile 32 |
$mailprog = '/usr/lib/sendmail';
Hier müßen Sie den kompletten Pfad zum UNIX-Programm sendmail angeben. |
Anmerkung
Es ist möglich eine eigene Eingabemaske für neue Einträge zu machen, und diesem die
Parameter über POST an das Programm zu übergeben. In diesem Fall muss man rw=save setzen. Variablennamen sind dann: name, email, homepage, text.
Ich denke allerdings nicht, dass dies nötig ist. Man sollte es den Cracks überlassen, die gerade nichts zu tun haben...
Falls man einen bedeutenden Fehler gemacht hat, wird das Programm diesen abfangen und melden.
Wird der Counter benutzt, wird die Variablenfile von Programm neu geschrieben, da in dieser
Datei der Counter die Zahl der Aufrufe schreibt. Die anderen Variablen werden davon aber inhaltlich nicht betroffen sein. Gegebenenfalls ändert sich derren Anordnung in der Datei. Zeilen, die mit einem '#' beginnen, bzw. die keinen Wert besitzen, der vom Programm genutzt wird, werden ignoriert.
Werden Parameter weggelassen, werden default-Werte gesetzt. Sollte u.a. der 'Kopf' weggelassen werden, werden die FAU-Buttons gesetzt.


