Versionshistorie
Neu in Version 1.4 (vom 17.10.2003)
- Konfiguration abgespalten:
Die Konfiguration befindet sich jetzt in der Datei config.php. Das Array $config legt jetzt die Optionen fest, die vorher über sämtliche Dateien verteilt waren.
Ausnahme: Benutzername und Passwort für das Lösch-Tool werden weiterhin in delete.php festgelegt.
- Zählen der gelöschten Einträge:
Das Lösch-Tool zählt jetzt, wieviele Einträge es erfolgreich gelöscht hat.
- Immer noch Bug in E-Mail-Adressen-Überprüfung:
Der reguläre Ausdruck, der die E-Mail-Adressen auf syntaktische Gültigkeit überprüft, war immer noch fehlerhaft. Es gab immer noch E-Mail-Adressen, die das Script überlasten konnten.
- Anderer Platzhalter für Schrägstriche:
Die Schrägstriche in Name, Homepage-Adresse und Mitteilung werden ab sofort nicht mehr durch [OBLIQUE], sondern durch | ersetzt. Das Script wandelt aber weiterhin bestehende [OBLIQUE]'s in Schrägstriche um.
- Code gereinigt:
Der Code wurde von einigen Unreinheiten beseitigt.
Erstmal haben alle Variablen englische Namen. Dann enthielten index.php und delete.php noch unnützen Code aus der Zeit vor Version 1.3.
Weiterhin wurden die beiden wichtigsten Funktionen readentries() und makeentry() zu read_entries() und make_entry() umbenannt. Diese Namen sehen einfach besser aus.
- Template-Klasse aktualisiert:
Die Template-Klasse wurde auf Version 1.2a aktualisiert. Dadurch steht auch eine bessere Syntax für bedingte Abschnitte zur Verfügung, von der jetzt Gebrauch gemacht wird. Die alten CondTag-Abschnitte werden aber weiterhin verarbeitet.
Neu in Version 1.3.1 (vom 26.7.2003)
- Bug in E-Mail-Adressen-Überprüfung:
Der reguläre Ausdruck, der die E-Mail-Adressen auf syntaktische Gültigkeit überprüft, enthielt einen Bug: Bei bestimmten E-Mail-Adressen, die eigentlich ungültig sind, wird das Script überlastet.
Danke an Simon Gude für den Hinweis!
Neu in Version 1.3 (vom 3.6.2003)
- Template-Parser-Klasse:
Die Templates werden jetzt mit Hilfe einer Klasse verarbeitet. Diese Klasse basiert auf den bisherigen Funktionen, die die Templates geparst haben.
- ID's jetzt wirklich eindeutig:
Das Guestbook erzeugt für die Einträge jetzt garantiert eindeutige ID's. Dazu kommen die von PHP bereitgestellte Funktion uniqid() und zwei zufällig ermittelte Zeichen (Kleinbuchstaben und Ziffern) zum Einsatz.
Zuvor wurden für die ID ganz einfach IP-Adresse und Zeitstempel aneinander gehängt. Diese ID's waren aber nicht wirklich eindeutig, da es theoretisch möglich wäre, dass dieselbe IP-Adresse innerhalb von einer Sekunde mehrere Einträge macht.
- Datendatei wird komplett anders eingelesen:
Die Datendatei wird jetzt nun nicht mehr einfach mit file() eingelesen. Die neu entwickelte Funktion readentries() macht mehr: Sie kann entweder die Datei direkt öffnen (und verhängt dann auch einen Shared Lock auf die Datei) oder von einem bestehenden Dateizeiger lesen. Die Funktion teilt die eingelesenen Daten zeilenweise auf, filtert unbrauchbare Zeilen raus (Leerzeilen; Zeilen, die nicht mindestens aus sechs Feldern bestehen; Zeilen die nur aus Strichen bestehen) und gibt das Ergebnis zurück.
- HTML-Ausgabe wieder vollständig:
Die HTML-Ausgabe des Lösch-Tools ist nun wieder vollständig, wenn nach dem Löschen keine Einträge mehr vorhanden sind.
- Versuche für Geschwindigkeits-Verbesserungen:
Es wird jetzt intern mehr mit Referenzen gearbeitet. Außerdem wird hier und da die Funktion clearstatcache() aufgerufen. Ich hoffe, dass das Guestbook dadurch etwas an Geschwindigkeit gewinnt.
- Fehler in ReadMe-Datei beseitigt:
Die Datei readme.htm enhielt ein paar kleine Fehler. So fehlte zum Beispiel eine Funktionsbeschreibung von entry.tpl. Außerdem hatte ich die Datei aus Versehen in gbreadme.htm umbenannt. Aber jetzt heißt sie wieder readme.htm.
Neu in Version 1.2 (vom 8.3.2003)
- Vorlage für Einträge:
Die Einträge lassen sich nun endlich mit Hilfe einer Vorlage steuern! Diese Vorlage, die den Namen entry.tpl trägt, verwendet einige spezielle HTML-Tags, deren Inhalt nur unter bestimmten Bedingungen an den Browser gesendet wird.
- Einlesen von HTML-Dateien durch
showhtml() verbessert:
HTML-Dateien werden von showhtml() nicht mehr mit include() eingelesen, sondern direkt mit fopen() und fread(). Dadurch werden ein paar Probleme mit XHTML umgangen.
Neu in Version 1.1a (vom 14.2.2003)
- Zeilenumbruch-Prüfung funktioniert wieder:
Durch eine schlampig durchgeführte Änderung funktionierte die von add.php durchgeführte Prüfung, ob die Datendatei mit einem Zeilenumbruch endet, nicht mehr. Der Fehler wurde behoben.
Neu in Version 1.1 (vom 12.2.2003)
- Lösch-Tool erneuert:
delete.php verwendet nun keine Vorlagen mehr - es war nämlich irgendwie unsinnig. Das heißt, dass die Dateien delete.tpl und delete_no_entries.tpl unnötig sind und gelöscht werden können.
Weiterhin wurde ein Bug im Lösch-Tool beseitigt, durch den neue Einträge verschwinden können. Die Wahrscheinlichkeit, dass dieser Fehler aufgetreten wäre, war allerdings sehr gering.
- Sonderzeichen und HTML-eigene Zeichen werden bei Benutzerfehlern codiert:
Wenn beim Speichern eines Eintrags ein Benutzerfehler auftritt, wurden Sonderzeichen und HTML-eigene Zeichen nicht codiert. Das ist jetzt behoben.
magic_quotes_gpc:
Die Funktion formdata() arbeitet jetzt auch korrekt, wenn in der PHP-Konfiguration magic_quotes_gpc deaktiviert ist. Wenn diese Option deaktiviert ist, wird nun kein stripslashes() mehr ausgeführt, da ansonsten bestimmte Zeichenfolgen verlorengehen können. Danke an Achim Schrepfer für den Hinweis!
- Versionshistorie:
Die Datei readme.htm enthält nun auch diese Liste mit Änderungen.
Neu in Version 1.01 (vom 27.1.2003)
- Löschfunktion erweitert:
delete.php kann nun auch mehrere Einträge auf einmal löschen. Aus diesem Grund kann nun die Funktion formdata() aus shared.php auch Formularfelder mit mehreren Werten verarbeiten.
Neu in Version 1.0 (vom 14.1.2003)
- Erste Version:
Dies ist die erste Version des Guestbook.
© 2003 Patrick Canterino