phpBuddy

Webhosting Gutscheine

Auf der Suche nach einem top Provider? Dann lohnt ein Blick auf diesen Artikel - Gutscheine zum Geld sparen gibt's inklusive!

Sie sind hier: Startseite Downloads phpBuddy.eu Gästebuch
Gästebuch mit Anti-Spam Schutz
Beitragsseiten
Gästebuch mit Anti-Spam Schutz
Voraussetzungen und Installation
Konfiguration und Administration
Template und Schlußwort
Live Demo und Download
Alle Seiten

Leistungsmerkmale

  • CSS und XHTML 1.0 valide - Das mitgelieferte Default Template wurde mit den Online-Tests des W3C validiert um eine maximal mögliche Kompatibilität zu allen gängigen Browsern zu gewährleisten.

  • Templatebasiert - Durch eine strikte Trennung von PHP Code und HTML/CSS ist das Gästebuch absolut flexibel und kann optisch bis in's kleinste Detail frei angepasst werden, damit es sich nahtlos in Ihre bestehende Seite integrieren läßt. Lediglich die benötigten Platzhalter müssen in der Templatedatei gesetzt werden, den Rest erledigt das Script.

  • Flexibilität - Neben der freien Anpaßbarkeit durch Templates kann das Gästebuch entweder als unabhängig freistehende Variante aber auch als Modul in einer bestehende dynamische Seite integriert werden.

  • Aktivierungssystem - Einträge werden nur veröffentlicht, wenn der Benutzer durch eine real existierende Emailadresse verifiziert wurde. Zu diesem Zweck bekommt der Benutzer nach dem Eintrag eine Email zugeschickt in der ein Aktivierungslink enthalten ist. Erst wenn dieser Link, der eine eindeutige Kennung enthält, angeklickt wurde wird der Eintrag tatsächlich freigeschaltet und wird für andere Besucher der Seite sichtbar. Gleichzeitig bekommt der Webmaster eine formlose Email die über den neuen Eintrag informiert.
    Spätestens an dieser Aktivierungs-Hürde scheitert der Internet Feind Nummer 1: Spambots!
    Seit Jahren benutze ich dieses System, zum Teil auf recht stark frequentierten Seiten, und bis heute hat es nicht ein einziger Spameintrag in den sichtbaren Gästebuch-Bereich auf der Seite geschafft.

  • Anti-Spam Filter - Der Anti-Spam Filter kann unendlich erweitert werden und hindert Bots, aber auch sonstige unerwünschte Einträge, daran in's Gästebuch aufgenommen zu werden. Bevor ein Eintrag in die Datenbank geschrieben wird prüft das Script, ob irgendwelche verbotenen Ausdrücke in der Nachricht vorkommen und verweigert die Eintragung. Sollte ein regulärer Benutzer so geblockt werden, gibt das Script einen Hinweis aus der darüber informiert wieso der Eintrag nicht angenommen wurde. In dem Fall kann der Benutzer einfach seine Nachricht überarbeiten und erneut absenden.

  • Badword Filter - Der Badword Filter wird während der Ausgabe auf die Einträge angewandt und ersetzt unerwünschte Wörter durch Sternchen (*). Dabei können einzelne Wörter aber auch ganze Sätze/Redensarten "entschärft" werden. Angenommen das Wort "Buch" wäre auf der Badword Liste, dann würde aus Gästebuch das Wort Gäste**** werden.

  • Ausgabe Kontrolle - Keine Ahnung wie ich dieses Feature benennen soll. Die Ausgaben Kontrolle überprüft die Benutzereingabe und verhindert Einträge die die Ausgabe verunstalten könnten. Darunter fallen z.B. übertrieben oft wiederholte Zeichen wie etwa 30 Ausrufungszeichen; überlange Wörter mit der Absicht ein Layout zu sprengen; sinnlose Zeilenumbrüche um eine Seite in die Länge zu strecken; usw.

  • Advanced Pager - Ein Pager sind Links mit denen man eine Seitenzahl direkt anspringen kann. Die allermeisten Pager sind eine simple Aufzählung aller Seiten und wenn es viele Seiten sind hat man eben eine ewig lange Liste mit Seitenzahlen. Der Advanced Pager stellt das Ganze etwas übersichtlicher und benutzerfreundlicher dar. Wenn die Seitenzahl zu groß wird werden die Links verkürzt, indem es einen Anfang, ein Ende und eine kleine Seitenzahl-Auswahl gibt. Das sieht dann in etwa so aus: Anfang ... 5 | 6 | 7 | 8 | 9 ... Ende

  • One-click Backup - Mit dem supereinfachen Backup System läßt sich innerhalb weniger Sekunden ein Backup aller Einträge erstellen und ebenso einfach wieder herstellen. Die Backup Datei wird im universellen XML Format erstellt, wodurch die Daten auch von anderen Scripts/Systemen verwendet werden können.

  • Emoticons und BBCode - Natürlich stehen auch die obligatorischen Emoticons zur Verfügung. Neben diesen Smilies hat der Benutzer auch die Möglichkeit seinen Eintrag etwas zu gestalten, mithilfe von BBCode. Es werden die BBCodes [i] (kursiv), [u] (unterstrichen) und [b] (fett) unterstützt.

  • Kommentar Funktion - Zu jedem Eintrag kann ein Admin-Kommentar hinzugefügt werden.

  • Admin-Zentrale - Über ein Passwort-geschütztes Backend kann der Administrator bequem Einträge bearbeiten, sperren/freischalten, Kommentare hinzufügen, sowie die Gästebucheinstellungen und Filter bearbeiten.

  • Flexible Programmierung - Das gesamte Script wurde in PHP 5 objektorientiert programmiert. Dadurch ist es später sehr einfach möglich den Funktionsumfang zu erweitern ohne komplexe Änderungen am gesamten Script vornehmen zu müssen.



Voraussetzungen

Die folgenden Voraussetzungen müssen erfüllt sein damit das Gästebuch korrekt funktionieren kann.

  • PHP 5.1.0 oder höher
  • MySQL 4.1 oder höher
  • FTP Zugang - Zum übertragen der Dateien und setzen von Dateirechte
  • Java Script Unterstützung - Erforderlich zur Administration des Gästebuch

Optional werden benötigt: CSS / (X)HTML Kenntnisse zum anpassen der Templatedateien.


Installation

Um die Installation so einfach wie möglich zu machen liegt dem Gästebuch-Script eine Setup Datei bei. Diese Setup Datei führt in 4 kurzen Schritten durch den Installationsprozess und kümmert sich weitestgehend darum das alle benötigten Tabellen und Konfigurationsdateien korrekt angelegt werden. Nichts desto Trotz müssen einige Vorbereitungen getroffen werden, bevor das Setup Script aufgerufen wird. Diese Vorbereitungen sind folgende:

  1. Dateien auf den FTP Server übertragen
    Der komplette Ordner gaestebuch mit allen darin enthaltenen Dateien, und unter Beibehaltung der Ordnerstruktur, muß in das Wurzelverzeichnis Ihrer Webseite übertragen werden. Die Dateien gaestebuch.php und setup.php müssen in das Wurzelverzeichnis kopiert werden, in denen Ihre anderen Seiten liegen.

  2. Dateirechte setzen
    Die Datei gbconf.inc.php im Ordner gaestebuch/include/ auf Ihrem FTP benötigt Schreibrechte. Diese können in der Regel sehr bequem über das FTP-Programm gesetzt werden. Wie genau es bei Ihrem Programm funktioniert entnehmen Sie bitte der Programm-Hilfe. Für gewöhnlich geschieht dies über einen Rechtsklick auf die Datei und unter Eigenschaften findet sich eine Option zum setzen des CHMOD (Dateirechte). Benötigt wird Lese/Schreib Zugriff, was CHMOD 666 oder 777 entspricht.

  3. Anlegen der Datenbank
    Wie dies genau geschieht ist von Provider zu Provider unterschiedlich. Deswegen sollten Sie, falls Sie nicht genau wissen wie man eine Datenbank bei Ihnen anlegt, beim Provider nachfragen, bzw. auf dessen Internetseite nachschauen, weil dies für gewöhnlich in den FAQ ausführlich beschrieben wird. Ist die Datenbank angelegt notieren Sie sich bitte den Benutzername, Passwort und den Name der Datenbank, da diese Daten im nächsten Schritt benötigt werden.

  4. Aufrufen der Setup Datei
    Rufen Sie nun im Browser die Datei setup.php auf (z.B. http://www.ihre-domain.de/setup.php) und folgen den Anweisungen der Setup Datei.

  5. Abschluß der Installation
    Nach erfolgreicher Installation bitte unbedingt die Datei setup.php wieder vom FTP löschen!
    Nun wäre ein guter Zeitpunkt zu prüfen ob die Installation erfolgreich war indem das Gästebuch über den Browser aufgerufen wird (z.B. http://www.ihre-domain.de/gaestebuch.php). Ebenso sollten Sie sich in der Admin-Zentrale (z.B. http://www.ihre-domain.de/gaestebuch/admin_zentrale.php) anmelden um zu sehen ob auch dies funktioniert.



Konfiguration und Administration

Die Gästebuch Konfiguration und Administration wird über die Admin-Zentrale erledigt. Der administrative Bereich teilt sich in 3 Bereiche: Eintrag-Übersicht, Spam & Badword Filter und Gästebuch Einstellungen.

  1. Eintrag-Übersicht
    In der Übersicht befinden sich alle Gästebuch Einträge, bzw um die Liste nicht allzu lang werden zu lassen nur die letzten 50 Einträge. Jede Zeile stellt einen Eintrag dar, wobei vor dem Eintrag die ID steht. Diese ID wird entweder in roter (Eintrag noch nicht aktiviert) oder grüner (Eintrag wurde aktiviert) Schrift dargestellt.
    Rechts neben den Einträgen sind 4 Symbole. Die Lupe öffnet ein Popup Fenster mit der Eintrag-Vorschau. Das 2. Symbol zeigt an ob ein Admin-Kommentar angefügt wurde, wobei das graue Männchen ohne Kommentar und das grüne Männchen mit Kommentar bedeutet. Das Stift-Symbol lädt den ausgewählten Eintrag in die Bearbeiten-Maske, wo der Eintrag editiert, gesperrt/freigeschaltet oder mit einem Kommentar versehen werden kann. Das rote Kreuz Symbol löscht den ausgewählten Eintrag. Bei einem Klick auf das Symbol öffnet sich ein Javascript Fenster das nachfragt ob der Eintrag wirklich gelöscht werden soll. Bestätigt man den Dialog mit "Ok", wird der Eintrag unwiederbringlich gelöscht. Ein Klick auf "Abbrechen" kehrt zur Übersicht zurück.

  2. Bereinigen
    Auf der Bereinigen-Seite werden nur inaktive Einträge angezeigt, die man mit 2 Klicks löschen kann um die Datenbank aufzuräumen.

  3. Spam & Badword Filter
    Zum bearbeiten der Filter Listen muß aus Sicherheitsgründen das aktuelle Paßwort eingegeben werden. Jede Zeile der jeweiligen Liste stellt einen eigenen Eintrag dar, deswegen bitte nicht mehrere Ausdrücke in einer Zeile eintragen, es sei denn dies ist gewünscht!

    Anti-Spam Filter - Diese Liste wird sowohl auf den Eintrag als auch auf das Email-Feld angewandt. Dadurch ist es möglich nicht nur potentielle Spam Wörter/Ausdrücke in der Nachricht zu blocken, sondern auf diese Art kann man auch bestimmt Email Adressen oder ganze Email Anbieter blockieren! Die Liste beachtet keine Groß-/Kleinschreibung und kann auch Ausdrücke und Sätze verarbeiten. Blockierte Nachrichten werden nicht in die Datenbank eingetragen.
    Hier einige Beispiele:
    viagra - blockt Einträge in denen Viagra (mit Groß-/Klein-Schreibvariationen) vorkommt.
    cool site - blockt Einträge die mit "Cool Site!" beginnen.
    name@hotmail.com - blockt den Absender name@hotmail.com
    @gmail.com - block alle Absender die eine @gmail.com Adresse benutzen

    Badword Filter - Dieser Filter wird während der Ausgabe der Einträge angewendet. Alle Wörter die in der Nachricht vorkommen und die auf der Badword Liste stehen werden durch Sternchen ersetzt.
    Hier einige Beispiel:
    buch - Gästebuch wird zu Gäste****
    hose - Hosenträger wird zu ****nträger
    css html - Dieses Gästebuch ist CSS HTML valide wird zu Diese Gästebuch ist *** **** valide.

  4. Gästebuch Einstellungen
    Zum bearbeiten der Einstellungen muß aus Sicherheitsgründen das aktuelle Paßwort eingegeben werden. Die Gästebuch Konfiguration setzt sich aus mehreren Teilen zusammen, die ich kurz vorstellen möchte.

    Admin ändern - Legt den Admin Name fest der für das Login benötigt wird
    Paßwort ändern - Ändert das aktuelle Paßwort für das Login
    Emailadresse ändern - Ändert die Admin Emailadresse. Diese Adresse wird benötigt als Absender der Aktivierungs-Email, sowie für die Benachrichtigung über neue Einträge.
    Gästebuch Titel - Die Überschrift des Gästebuch, sowie der Titel der Seite.
    Internetadresse - Die vollständige (mit dem abschliessenden Slash!!) Adresse wo die gaestebuch.php Datei liegt. Diese Adresse ist sehr wichtig, da sie an vielen Stellen benutzt wird, u.a. als Link in der Aktivierungs-Email, zurück-Links bei Fehleingaben usw. Wird diese Adresse falsch festgelegt, wird das Gästebuch nicht korrekt funktionieren!
    Template-Datei - Der Name der Template-Datei für die Gästebuch Ausgabe. Standard ist default.tpl
    Mail Template-Datei - Template-Datei der Aktivierungs-Email. Standard ist mail.tpl
    Betreff der Aktivierungs-Email - Wie es der Name sagt. Der Betreff sollt aussagekräftig sein, damit der Benutzer weiß das es sich nicht um Spam handelt.
    Einträge pro Seite - Legt fest wie viele Einträge pro Seite ausgegeben werden.

    Modulpfad - Diese Option ist für Entwickler und Betreiber dynamischer Seiten interessant!
    Wird dieses Feld leer gelassen, verhält sich das Gästebuch als Standalone Script.
    Wird ein Pfad angegeben ist es möglich das Gästebuch in andere, bereits existierende dynamische PHP Seiten zu integrieren. In diesem Fall wird weder ein Head noch ein Body der Template-Datei ausgegeben, sondern es wird nur der DIV-Container ausgegeben in dem das Template sitzt. Daraus folgt, daß man selbst dafür sorgen muß das die benötigten CSS Regeln in die Hauptseite eingebunden werden! (Welche Regeln das sind folgt im Abschnitt "Template")
    Ebenso muß dafür gesorgt werden das eine Session im übergeordneten Script gestartet wird, da das Gästebuch diverse Informationen in der Session ablegt! Ferner muß direkt nach dem starten der Session der Ausgabepuffer mit ob_start(); gestartet werden, da es sonst zu Fehlermeldungen kommen wird, weil in der Abarbeitung mehrfach ein Header gesendet wird!

    Beispiel wie der Modulpfad aussehen kann:
    ?seite=gaestebuch - Wenn das Gästebuch dynamisch z.B. über die Adresse index.php?seite=gaestebuch eingebunden wird. Das Gästebuch hängt in diesem Fall seine eigenen Parameter hinter den Pfad an, z.B. index.php?seite=gaestebuch&seitenzahl=8

    Zusammenfassung Modulpfad:
    Soll das Gästebuch ganz normal als eigenständige Seite betrieben werden, so ist der Modulpfad leer zu lassen!
    Soll das Gästebuch in eine dynamische Seite inkludiert (eingebettet) werden, so muß der Modulpfad nach oben gezeigtem Muster angegeben werden und zusätzlich muß im Hauptscript -in dem das Gästebuch inkludiert wird- eine Session und den Ausgabepuffer starten. Die ersten 3 Zeilen des Hauptscripts müssen wie folgt aussehen:

    <?php
    session_start();
    ob_start();

    Wird versäumt die Session und den Ausgabepuffer zu starten, kommt es zwangsläufig zu Fehlermeldungen auf der Seite und ein eintragen in das Gästebuch ist nicht möglich!

  5. Gästebuch Backup & Restore
    Das Backup der Einträge wird mit einem Klick auf "Backup herunterladen" gestartet. Es werden alle Einträge aus der Datenbank gelesen und on-the-fly in eine XML Datei geschrieben, die direkt zum Download angeboten wird. Es wird keine Datei auf dem Server abgelegt, damit niemand unberechtigt an die Daten kommen kann.
    Das Wiederherstellen (Restore) der Datensätzen geschieht ebenso einfach, indem eine zuvor heruntergeladenen Backup XML Datei via Dateifeld auf den Server übertragen wird, alles weitere geschieht automatisch. Es ist wichtig das Wiederherstellen in eine leere Tabelle durchzuführen, denn das System überschreibt keine vorhandenen Einträge. Am sinnvollsten ist es, sollte es zum Gau gekommen sein, eine komplette Neu-Installation des Gästebuch durchzuführen und anschließend die Einträge über eine Backup Datei wieder herzustellen.
    Auf die gleiche Weise lassen sich auch alle Einträge auf einen anderen Server übertragen, sollte man mit seiner Seite mal umziehen.



Template

Im Ordner gaestebuch/template/ befinden sich mehrere Dateien, die im Einzelnen folgendes beinhalten:

  • default.css - Die CSS Datei des Standard Template. Diese Datei kann angepasst werden um dem Standard Template ein anderes Aussehen zu geben um es nahtlos in die eigene Seite zu integrieren.

  • default.tpl - Die Standard Template Datei mit dem HTML Markup.

  • mail.tpl - Die Template Datei der Aktivierungs-Email. Diese Datei sollte nicht verändert werden.

  • original.css - Inhaltlich identisch mit default.css und dient als Backup, falls Anpassungen in der default.css Datei schief gehen.

  • template.css - Enthält kein CSS aber alle benötigten Selektoren die in der default.tpl verwendet werden. Diese Datei dient als Basis um sich eine vollkommen neue CSS Datei von Grund auf zu erstellen.

  • template.tpl - Enthält kein HTML Markup sondern alle benötigten Platzhalter, falls man sich eine vollständig eigene Template Datei erstellen möchte.
    Wichtig: Die Reihenfolge der gegebenen Platzhalter sollte eingehalten werden. Die Kommentare <!-- BEGIN GB-Eintrag --> und <!-- END GB-Eintrag --> sowie <!-- BEGIN ADMINKOMMENTAR --> und
    <!-- END ADMINKOMMENTAR --> sind Blöcke und werden durch das Script in einer Schleife durchlaufen. Es ist wichtig das die Elemente (bzw deren Platzhalter) eines Eintrags zwischen dem jeweiligen Begin und End Block stehen!

Ein wenig experimentieren schadet sicher nicht, falls man sich die Templates anpassen möchte. Sollte man sich eine eigene Template Datei (mit den Platzhaltern) erstellen und diese anders benennen als default.tpl, muß der Name in der Admin-Zentrale angepasst werden.


Schlusswort

Wie Sie sicher sehen werden verzichte ich (vorerst) komplett auf jegliche Backlinks oder sonstige Verweise in eigener Sache. Dennoch würde es mich freuen, wenn Sie auf Ihrer Seite einen Verweis (Link) zu meiner Webseite plazieren würden. Ebenso würde es mich freuen, wenn Sie mir eine kurze Email zukommen lassen könnten in der Sie mir mitteilen auf welcher Domain das Gästebuch installiert wurde. In Zukunft erstelle ich evtl eine Referenz-Liste und würde ggfs zum Gästebuch auf Ihrer Seite verlinken.

Falls Sie ein eigenes Template für das Gästebuch entworfen haben würde ich mich über die Template und CSS Datei freuen, da ich diese eventuell in einen späteren Release mit-veröffentlichen werde. In der Template/CSS Datei bitte Ihren Namen und/oder Nickname sowie Ihre Webadresse nennen, damit zukünftige Benutzer auch wissen wem sie das tolle Template zu verdanken haben.

Ich wünsche Ihnen viel Spaß mit dem neuen Gästebuch und sende meine besten Grüße,
Andreas



Demo und Download

Die live Demo beruht noch auf Version 0.1 des Gästebuch. Nicht enthalten ist dort u.a. die One-Klick-Backup Funktion, sowie die Bulk-Löschfunktion. Für einen ersten kleinen Eindruck sollte es aber genügen. Neben dieser Demo wird das Gästebuch natürlich auch "produktiv" auf dieser Seite eingesetzt - einfach mal in der linken Navigation unter "Kontakt" schauen.

Hinweis: Das echte Gästebuch auf dieser Seite ist nicht dazu gedacht Dummyeinträge zu machen um die Funktionalität zu testen, deswegen bitte ich darum davon abzusehen!

Links zur Demo:


Beispielseiten von phpBuddy.eu Gästebuch Benutzer

Wichtig: Ich bitte ausdrücklich darum auf den folgenden Seiten keine Testeinträge zu machen, nur um mal zu schauen wie der Eintrag so aussieht! Die Seiten befinden sich im produktiven Einsatz und deshalb wäre es mehr als unangebracht dort das GB zu verschandeln. Wer natürlich einen ganz normalen Gruß hinterlassen möchte kann das gerne tun.

Gästebuch Version 0.2 (Release: November 2007)
Gästebuch Update von Version 0.1 auf Version 0.2 (Release: November 2007)