PHP-Counter mit IP-Sperre
Oft findet man auf Internetseiten einen Counter (Zähler), der die Anzahl der Besucher wiedergibt. Einige Seiten verwenden dabei einen externen Counter von einem Drittanbieter. Wir wollen uns hier mit dem Entwurf und der Umsetzung eines eigenen Counters beschäftigen. Hierdurch erreichen wir
- eine optimale Integration und Anpassbarkeit an unser Seitenlayout
- keine lästigen Werbeeinblendungen
- “echte” Besucherzahlen durch IP-Sperren
- gute Verfügbarkeit
- hohe Geschwindigkeit
Eigenschaften unseres Counters?
Wir beginnen mit der Überlegung welche Eigenschaften unser Counter besitzen soll:
Von Vorteil wäre es wenn wir die Mindestanzahl der Zahlenstellen bestimmt werden könnten. Solange diese unterschritten wird, sollen die fehlenden Stellen mit Nullen aufgefüllt werden (z.B. 12 => 00012).
Ein Besucher sollte innerhalb eines bestimmten Zeitraumes nur einmal gezählt werden. Das künstliche Erhöhen durch einfaches Betätigen der Reloadtaste soll somit verhindert werden. Dieser Zeitraum muss anpassbar sein.
Eine Anzeigeunterdrückung dürfte ebenfalls von Vorteil sein (z.B. wenn der User nicht über die Startseite auf die Homepage gelangt).
Das Layout des Counters sollte ohne Änderung am Quelltext anpassbar sein.
Datei oder Datenbank?
Prinzipiell gibt es zwei unterschiedliche Ansätze. Die Daten werden in eine Textdatei oder in einer Datenbank geschrieben. Das verwenden einer Textdatei ist etwas einfacher zu realisieren. Problematisch ist diese Variante allerdings sobald mehrere Besucher gleichzeitig auf die Seite zugreifen. Um eine Datei zu ändern, muss diese zuerst geöffnet werden, dann müssen die entsprechenden Daten gelesen und ausgewertet werden, erst jetzt erfolgt das Schreiben und die Datei wird wieder geschlossen. Während des kompletten Vorgangs benötigt man exklusive Zugriffsrechte und die Datei ist während dieses Zeitraumes für andere Verwendungen gesperrt.
Alternativ lassen sich die Daten in einer Datenbank ablegen. Die DB ist in der Lage mehrere Zugriffe “gleichzeitig” auszuführen. Weit verbreitet ist die MySQL Datenbank.
Wer hohe Benutzerzahlen (mehrere hundert pro Tag) erwartet, sollte lieber auf die Variante mit der DB setzen. Wir entscheiden uns hier ebenfalls für die Datenbank Variante.
als
Quellcode-Counter