Startseite --> Projekte --> Guestbook --> Change Log
Change Log
Neu in Version 1.5.1 (vom 6.6.2005)
- Keine "Notices" mehr:
Das Guestbook sollte nun auch ordnungsgemäß funktionieren, wenn für error_reporting der Wert E_ALL eingestellt wurde.
- Fehlermeldung bei komplett leerer Datendatei:
Wenn die Datendatei eine Größe von 0 Bytes hatte, hatte fread() eine Fehlermeldung erzeugt. Das ist nun behoben.
- BBCode-Klasse aktualisiert:
Die BBCode-Klasse wurde auf Version 0.2.4-beta2 aktualisiert.
- Template-Klasse aktualisiert:
Die Template-Klasse wurde auf Version 1.5a aktualisiert.
- Verschiedene Änderungen:
Es wurden verschiedene kleine Änderungen durchgeführt:
- In delete.php wurde beim Löschen nicht geprüft, ob die Datei korrekt geöffnet wurde.
- Die Funktion
sizeof() wurde durch count() ersetzt. sizeof() ist nämlich ein Alias - und von der Verwendung von Aliasen wird abgeraten.
- Wo es angebracht war, wurden doppelte Anführungszeichen durch einfache ersetzt.
Neu in Version 1.5 (vom 19.12.2004)
- BBCode in Einträgen:
Es ist jetzt möglich, in den Einträgen einfache Formatierungen mit Hilfe von BBCodes anzuwenden. Der Code wird einmalig in HTML umgewandelt und das Ergebnis dann in der Datendatei abgespeichert.
Zur Zeit werden folgene Codes verarbeitet:
[b]...[/b] für fetten Text
[i]...[/i] für kursiven Text
[link]...[/link] und [url]...[/url] für Links
[image]...[/image] und [img]...[/img] für Bilder
Ob mal weitere BBCodes hinzukommen werden, weiß ich zur Zeit noch nicht.
Zum Parsen des BBCode wird die BBCode-Klasse von Christian Seiler verwendet.
- URL-Prüfung verbessert:
Während der Implementierung des BBCode wurde die Überprüfung für URLs deutlich verbessert. Sie kann jetzt mit Port-Angaben, IP-Adressen und relativen URLs umgehen.
Die Prüfung ist aber immer noch nicht das Wahre. Ich überlege deswegen, das CheckRFC-Modul aus dem selfforum nach PHP zu portieren und das stattdessen zu benutzen. Es würde dann auch den regulären Ausdruck ersetzen, der E-Mail-Adressen auf ihre Gültigkeit überprüft.
- Nur-Lesen-Modus:
Das Guestbook kann jetzt in einen Nur-Lesen-Modus geschaltet werden. Ist dieser Modus aktiviert, lassen sich keine neuen Einträge verfassen.
- Umwandeln von Zeilenumbrüchen:
Zeilenumbrüche in Name, E-Mail- und Homepage-Adresse werden nun in Leerzeichen umgewandelt.
- Codieren von E-Mail- und Homepage-Adresse:
Bevor E-Mail- und Homepage-Adresse in der Datendatei gespeichert werden, werden zunächst Sonderzeichen in Entities umgewandelt.
- Maximallängen für Name und Mitteilung:
Es ist nun möglich, Maximallängen für Name und Mitteilung festzulegen.
- Code-Säuberungen:
Der Quellcode des Guestbook ist leider ein wenig chaotisch und unübersichtlich. Ich habe mal versucht, ihn an einigen Stellen ein wenig zu säubern.
- Abbruch bei fehlenden Include-Dateien:
Sollte eine Include-Datei fehlen, gibt das Guestbook nicht mehr einfach nur eine Fehlermeldung aus, sondern wird zusätzlich beendet.
<br /> für Zeilenumbrüche:
Zeilenumbrüche im Mitteilungstext werden ab sofort durch ein <br /> ersetzt anstatt durch <br>.
- Änderungen an Template-Struktur:
An der Template-Struktur wurden einige grundlegende Dinge verändert. Sie sollten beim Aktualisieren einer bereits installierten Version des Guestbook auf folgende Dinge achten:
- Die Templates tragen jetzt die Endung .htm und nicht mehr .tpl.
- Die Template-Datei blank.tpl fällt weg. Stattdessen gibt es jetzt in der Datei read.htm den neuen bedingten Block entries. Sind Einträge vorhanden, wird der Inhalt dieses Blockes angezeigt.
- Der unschöne Variablen- und Formularfeldname emailad wurde durch email ersetzt. Dasselbe gilt für den entsprechenden bedingten Abschnitt.
Außerdem wurden in einigen bedingten Abschnitten das no durch einen Unterstrich vom Rest abgegrenzt.
- In der Konfiguration können zu den einzelnen Templates nun unterschiedliche Pfade angegeben werden. Davor war es nur möglich, das Verzeichnis mit den Templates anzuegeben.
- Sämtliche Templates können nun die neue Variable
{SCRIPT} enthalten. Sie wird durch den HTTP-Pfad des aktuellen Scripts ersetzt.
- Template-Klasse aktualisiert:
Die Template-Klasse wurde auf Version 1.3 aktualisiert.
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.
- IDs jetzt wirklich eindeutig:
Das Guestbook erzeugt für die Einträge jetzt garantiert eindeutige IDs. 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.
Startseite --> Projekte --> Guestbook --> Change Log
© 2003-2005 Patrick Canterino