MCS Gästebuch 1.61

Hi,
und schon wieder ein Gästebuch.
Ich habe lange Zeit im Internet verbracht auf der Suche nach einem Gästebuch mit den von mir benötigten Eigenschaften. Leider ohne nennenswerten Erfolg. Also hab ich selber eines geschrieben. Und ich denke es ist gut geworden.

Wir gehen in die Version 1.61 Die Änderungshistorie ist hier zu finden.

WICHTIG für Updater: In der Version 1.3 wurden gegenüber der Version 1.2 viele Änderungen eingepflegt. Die Einstellungen sind dadurch nicht mehr kompatibel. Zur Umstellung schauen Sie bitte in der Änderungshistorie nach.

Features

- keine Datenbank, alle benötigten Daten liegen im Textformat vor. Die Einträge werden in einer Textdatei vorgehalten.
- das Aussehen kann in weiten Teilen eingestllt werden.
- Adminclient !!!!!!!!!
- Jeder neue Eintrag wird zusätzlich auch als EMail versendet, sowohl an den Admin wie auch an den User selber (Einstellbar).
- editierbare Badword-liste
- Eintrag mit Name, Email, Homepage und Text
- Icons für Email and Homepage sind nur sichtbar, wenn Email and Homepage angegeben worden sind
- einstellbare Anzahl an Einträgen pro Seite
- einfache Seitennavigation 
- Smilies and HTML-Code im Text
- Anzeige von Eintragsindex und Seitenzahl
- Extramöglichkeit der Anzeige des letzten Eintrages 
- SPAM- und IPSchutz, ein User kann isch jetzt nur noch einmal pro Tag eintragen. (Genauer gesagt ausgewertet wird die IP des Users) 
- Ausschlussliste für EMail-Adressen. Es können bestimmte EMail Adressen vom Eintrag ausgeschlossen werden. - Ausschlussliste für URL's. Es können bestimmte URL's vom Eintrag ausgeschlossen werden, sowohl in der Homepage, wie auch im Text.

Beispieldesigns (noch mit Version 1.2)

Brittas Patchworkstatt
(simplebook)

Download

 MCS Gästebuch
(newline)

9Lies Willies World
(3Entry)

Download

Installation

Unzippen der Dateien mit Pfadstruktur. Auf UNIX Systemen müssen alle Dateien mit CHMOD 666 "behandelt" werden. Unter Windows bitte darauf achten, das der WebServerUser Schreibrechte auf alle Dateien hat.
Zum Verlinken dient die Datei guestbook.php
d.h. um auf das Gästebuch zu kommen muss man einen Link einbauen, der so aussieht : 

<a href:"guestbook/guestbook.php">Gästebuch</a>

für den letzten Eintrag genügt ein 

<a href:"guestbook/lastentry.php">letzer Eintrag</a>

oder aber man ruft das Script in der Seite (wenn diese mit php geschrieben ist) an der entsprechenden Stelle einfach mit 
include("guestbook/lastentry.php")
auf. 

Administration

Den Administrationsclient aufrufen, <site>/guestbook/admin.php (das Passwort steht in der config/admconfig.php) und noch die restlichen Einstellungen vornehmen. Wichtig für die Administration, die Sessions in PHP müssen aktiviert sein.
(Fragen beantworte ich unter Kontaktformular)

Einstellungen

header file Der Vorspann des erzeugten HTML-Outputs
footer file Der Abspann des erzeugten  HTML-Outputs
last header file Der Vorspann des erzeugten HTML-Outputs für die Anzeige des letzten Eintrages. ( lastentry.php)
last footer file Der Abspann des erzeugten HTML-Outputs für die Anzeige des letzten Eintrages.
mastermail EMailaddresse für das Versender der Nachricht bei einem neuen Eintrag. Wenn keine Email versendet werden soll, $mastermail = "0";
send usermail Soll auch an den User eine EMail geschickt werden, wenn er einen neuen Eintrag vorgenommen hat, dann $send_usermail ="1", sonst $send_usermail =""
entry template Dieses Template wird für einen Eintrag benutzt. Folgende Makros werden unterstützt: alle
last entry template Dieses Template wird für den letzten Eintrag benutzt (nur lastentry.php)
Folgende Makros werden unterstützt: %NAME%, %DATE%, %TEXT%, %EMAIL%, %HOMEPAGE% %EMAILPATTERN%, %HOMEPAGEPATTERN%, %COUNT%
form template Name des Template für das Eingabe Formular
bad word file Datei mit der Badwordliste
lines per page Anzahl der Einträge pro Seite
email template Dieses Template dient dem Makro %EMAILPATTERN%, d.h. ist eine EMail vorhanden, wird das %EMAILPATTERN% durch diesen eintrag ersetzt, ist keine EMail vorhanden, wird dieser Eintrag durch einen Leerstring ersetzt.
Folgende Makros werden unterstützt: %EMAIL%
home template Dasselbe wie $c_emailtemplate nur für den Homepageeintrag %HOMEPAGEPATTERN%,
Folgende Makros werden unterstützt: %HOMEPAGE%
before page Dieses Template wird vor jeder Seite gesendet,
Folgende Makros werden unterstützt: %PAGEAFTERLINK%, %PAGEBEFORELINK%, %PAGE%, %PAGECOUNT%
after page Dieses Template wird nach jeder Seite gesendet,
Folgende Makros werden unterstützt: %PAGEAFTERLINK%, %PAGEBEFORELINK%, %PAGE%, %PAGECOUNT%
next page Template für das Makro %PAGEAFTERLINK%
back page Template für das Makro %PAGEBEFORELINK%
first line Dieses Template wird vor c_beforepage und bevor die Datei geöffnet wird gesendet.
Folgende Makros werden unterstützt: %PAGE%, %PAGECOUNT%
last line Dieses Template wird nach c_afterpage gesendet ,
Folgende Makros werden unterstützt: %PAGE%, %PAGECOUNT%


MAKROS

%EMAIL% EMailadresse für den Eintrag.
%EMAILPATTERN% Wird durch das Template c_emailtemplate ersetzt nach der Ersetzung von %EMAIL%. Ist keine EMail angegeben worden, bleibt dieser Eintrag leer.
%HOMEPAGE% and
%HOMEPAGEPATTERN%
Dasgleiche nur mit dem Homepageeintrag
%COUNT% Anzahl der Einträge
%INDEX% Aktuelle Nummer des Eintrages
%PAGE% Aktuelle Seitennummer 
%PAGECOUNT% Anzahl der Seiten
%LINK% Template für den internen Link für "pagebeforelink" or "pageafterlink"
%PAGEAFTERLINK% link zur folgenden Seite, wird leer gelassen, wenn die letzte Seite angezeigt wird.
%PAGEBEFORELINK% link zur vorhergehenden Seite, wird leer gelassen, wenn die erste Seite angezeigt wird.
%NAME% Name des Eintrages
%DATE% Datum, Uhrzeit des Eintrages
%TEXT% Text des Eintrages

Dateien

guestbook.php    Das Hauptscript für das Gästebuch.
lastentry.php    Gibt nur den letzten Eintrag formatiert zurück.
eintraege.txt    Datei mit den Einträgen.
readme_en.htm    englische readme, leider ist mein englisch nicht so gut. Vielleicht findet sich ja jemand, der mir die Readme vernünftig übersetzt.
readme_de.htm    Diese Datei.
index.php    Diese Datei gibt nur einen Text aus, damit keiner einfach so in das Verzeichnis gehen kann.
config/config.php    Datei mit den Grundeinstellungen 
config/    Hier finden sich alle Konfigurationsdateien und Templates
images/    Ein paar Images für das Gästebuch
smiles/    Hier liegen die Smilies und die beiden Hilfeseiten.

example/    hier liegen verschiedene Desingbeispiele

Historie

Version 1.61

Kurzbeschreibung Beschreibung
Captcha Bugfixing

Captcha funktionierte nicht, wenn nicht session.autostart = 1 gesetzt war. Außerdem konnte man ohne Captchaeingabe einen Eintrag machen.

 

Version 1.6

Kurzbeschreibung Beschreibung
Captcha

Jetzt ist auch für neue Einträge ein Captcha drin. Einträge werden nur noch genommen, wenn die auf der grafik abgebildeten Zeichen in das Textfeld daneben oder darunter eingegeben werden.
Vielen Dank an Norbert Pfeiffer für die einfache Captcha Implementierung.

 

Version 1.5

Kurzbeschreibung Beschreibung
Ausschlusslisten

Die Ausschlusslisten können nun über den Adminclient bearbeitet werden.

php5, register_globals

Bei dieser Kombination kam es zu Problemen in der Sessionverwaltung. (Der Admin konnte sich nicht mehr einloggen).

 

Version 1.4

Kurzbeschreibung Beschreibung
Ausschlusslisten Es gibt nun Ausschlusslisten für EMail-Adressen und URL's.
Damit kann man endlich den Spammerautomaten das Handwerk legen.
Die Liste für EMail-Adressen heißt namelist.txt und die für die URL's urllist.txt.
Jede Zeile in diesen Listen ist ein Eintrag.
Es können sowohl direkte Adressen eingegeben werden, wie z.B. Murks@gmx.de als auch reguläre Ausdrücke, wie z.B. #(www).[a-z0-9_-]*(\.[a-z0-9_-]+)*. Dieser Ausdruck würde keine mit www. beginnende URL zulassen.
Einträge, die reguläre Ausdrücke sein sollen, müssen mit # beginnen. Gesucht wird grundsätzlich ohne beachtung der Grosskleinschreibung.
Wird ein eintrag abgelehnt, wird das Template illegalentry.ihtml gezeigt.

 

Version 1.3

Kurzbeschreibung Beschreibung
Adminclient Es gibt nun (endlich) einen Admin Client. Dadurch hat sich jedoch auch einiges in der gesamten Administration geändert. Es wird außer den grundlegenden Konstanten, nichts mehr in der config.php administriert. Alle Benutzereinstellungen liegen nun in der Datei config.cfg. Es gibt auch mehr Template-Dateien. Die einzigen Templates, die noch direkt über eine Variabele benutzt werden, sind die Templates für die Links für's Seitenblättern. ACHTUNG: Bei der Umstellung müssen folgende Variabelen in eigene Dateien kopiert werden. Die Dateinamen lassen sich nach wie vor in der config.php einstellen. Ich rate jedoch davon ab, die Dateinamen zu ändern.

$c_emailtemplate = config/EMAIL.ihtml
$c_hometemplate = config/homepage.ihtml
$c_beforepage = config/beforepage.ihtml
$c_afterpage = config/afterpage.ihtml
$c_firstline = config/firstline.ihtml
$c_lastline = config/lastline.ihtml

$c_nextpage und $c_backpage bleiben erhalten, da diese Einträge meist nur eine Zeile lang sind. ( Wer längere Einträge hat, möge sich bitte melden, dann stell ich diese beiden auch noch auf Dateien um).

Leider musten nun auch die Beispiele dran glauben. Sobald ich alle Seiten umgestellt habe, werde ich die Beispiele als eigene Dateien zum Download anbieten. Etwas gutes hat es ja. Der Download ist nun deutlich schneller.

Reload-, SPAM-Schutz Nun wird auch sichergestellt, dass man nur einmal innerhalb von 24h einen Eintrag machen kann.

 

Version 1.2

Kurzbeschreibung Beschreibung
Newline Demo geändert Im Newlinedemo befindet sich nun eine form.ihtml (Eingabeformular) mit dem man dierekt die BB Codes und Smilies eintragen kann.

Version 1.1

Kurzbeschreibung Beschreibung
Namen der ZIP-Datei geändert Das Gästebuch heißt jetzt MCS_Guestbook_V1_1.zip
F: Quelltextkommentare hinzugefügt Einige Stellen waren recht kompliziert bzw. überhaupt nicht kommentiert.
B: keine Anzeige im Gästebuch Bei fehlen der Eintragsdatei wurde im Gästebuch außer den Haeder und Footer nichts mehr angezeigt. Man hatte auch keine Möglichkeit einen neuen Eintrag hinzuzufügen. Jetzt wird automatisch eine neue Datei erstellt.
F: Teilnehmer kann nun eine Email-benachrichtung erhalten Jetzt kann auch der Teilnehmer eine EMailbenachrichtung erhalten. $send_usermail <> ""
B: Beispiele überarbeitet Es gab da ein paar vorkonfigurationen, die nicht ganz optimal waren.
B: page > Pagecount -> eine leere Seite Wurde in der URL page mit größeren werten belegt als Seiten vorhanden, wurde immer eine leere Seite angezeigt und der Pageindex war negativ. Jetzt wird die letzte Seite gewählt.

Ausblick

Schade, erst mal nix mehr... ;-)

Schickt mir Anregungen

Author Wilfried Klaas

mailto:W.Klaas@gmx.de