Hallo,
sicher kann die Counter-Klasse so umgeschrieben werden, dass sie auch ohne Datenbankanbindung
funktioniert. Allerdings würde das einer neuen Umsetzung des Scripts gleich kommen - eben nur mit
anderen Rahmenbedingungen.
Hierzu kann der Zählerstand in einer Datei gespeichert werden. Im Prinzip müssen die selben Daten,
wie beim MySQL-Counter in Dateien gespeichert werden. Ich würde den Zustand des Counters in
einer Datei (etwa counter.txt) und die User, die sich derzeit auf der Seite befinden, in einer weiteren
Datei (beispielsweise online.txt).
Ein Scriptbeispiel, bei dem allerdings nur die Seitenaufrufe gezählt werden findest Du in den PHP-Code
Beispielen unter
Hit-Counter in File speichern. Mit den IP-Adressen der Besucher, die Online sind gehst Du
nicht anders vor. Einfach die IP-Adressen zeilenweise in einer Datei ablegen und mit dem Timestamp
des letzten Seitenaufrufs von dieser IP versehen. Diesen und die IP bei jedem Aufruf einfach mit der
Liste abgleichen und die Liste aktualisieren. (IPs, die sein n Sekunden nicht mehr angefragt haben
können rausfliegen; Timestamp für jeweilige IP-Adresse aktualisieren, wenn der Aufruf innerhalb des
Timeouts liegt)
Visits und Page-Hits können als Summe in der Datei counter.txt abgelegt werden. Dabei wird der Wert
für die Visits nur dann hochgezählt, wenn die IP des Clients noch nicht in der Online-Liste enthalten ist.
Hits können immer erhöht werden. Kannst die beiden Werte einfach nebeneinander in eine Zeile der Datei
schreiben und entsprechend wieder auslesen, aktualisieren und wieder wegschreiben.
Etwas aufwändiger wird es, wenn die Hits und Visits der vergangenen Zeit nachgehalten werden sollen.
Hier muss dann für jeden Tag, an dem der Counter aktualisiert wird, eine Zeile abgelegt werden. Etwa
in der Form, dass eine Zeile der Datei jeweils die Hit- und Visit-Werte zu einem bestimmten Datum
enthält. Die Liste kann durch Anhängen einer weiteren Zeile für den aktuellen Tag (s.
Append File Beispiel)
fortgeschrieben werden. Zum Vergleich muss stets die letzte Zeile ausgelesen werden und mit dem
aktuellen Datum verglichen werden. Sind die Datumsangaben unterschiedlich, so wird eine neue Zeile
angehängt und der Tagescounter wird bei den Werten für Hits- und Visits bei 1 begonnen. Die Summe
der bis zum Seitenaufruf aufgeschlagenen Besucher und Hits kann durch Einlesen der Datei und
Summierung der Zeilenwerte zu Hits und Visits berechnet werden.
Alternativ sollten die Summenwerte aber eher in einer eigenen Datei abgelegt werden. Ansonsten
dauert das Summieren der Besucherzahlen zunehmend länger, da die Datei jeden Tag um eine Zeile
wächst.
Gruß
Alex