counter auch ohne datenbank?

PHP: Hypertext Preprocessor

counter auch ohne datenbank?

Beitragvon marcel am Mo 8. Dez 2008, 12:21

tach auch,

ich habe nach einem besucherzähler gesucht, der auf meiner seite anzeigt, wieviele besucher sich
dort aufhalten. allerdings habe ich keine datenbank zur verfügung und kann euren counter von
http://www.evocomp.de/scripts/php-scripts-download/php-counter-class/php-counter-script.html
nicht bei mir einsetzen. ist es möglich den counter so anzupassen, dass er auch ohne datenbank funktioniert?

danke für eure hilfe
marcel
 
Beiträge: 1
Registriert: Mo 8. Dez 2008, 12:16

Beitragvon alm am Mo 8. Dez 2008, 13:34

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
EvoComp.de
Beachten Sie unsere Beispiele zu JavaScript, PHP und Ajax, sowie unser PHP MySQL Tutorial
alm
 
Beiträge: 81
Registriert: Do 21. Feb 2008, 16:22
Posts


Zurück zu PHP

cron