Homepagebau |
|
|||||
Zugriffszähler
Schwierigkeit: für Anfänger
Skript downloadenversion:
11.05.2007
dieses Skript wurde vorgestellt in
"PC-Magazin" 12/2003
|
||
Zähler (nur Text) |
Zähler (grafisch mit Skins) |
|
Beispiel: |
Beispiel: |
|
|
Skins zum Download |
||
Skin: Micro |
Skin: Metall |
|
Skin: Holz |
Skin: Elegance |
|
Skin: Black / White |
Skin: Digital |
|
Skin: Mauer
Dieser Skin wurde zur Verfügung gestellt von
Andreas Bomke. Vielen Dank!
|
||
|
Ein einfacher Counter, der extrem leicht einzubauen ist. Das Skript verwaltet beliebig viele verschiedene Zählerstände. Eingebaut ist außerdem eine IP-Sperre, damit ein Besucher beim Reload der Seite nicht erneut gezählt wird.
Dieses Skript darf (wie alle Skripte bei uns) nicht zu kommerziellen Zwecken oder von Firmen sondern lediglich von Privatpersonen für private Homepages und/oder gemeinnützigen Vereinen für deren Webseiten verwendet werden.
Insbesondere untersagt ist jede unerlaubte Weitergabe oder Verkauf!
Wie schreibe ich einen Counter in PHP?
Ein einfacher Zugriffszähler gehört zu einer der leichtesten Übungen für geübte Programmierer und ist ein typisches Trainingsszenario für Anfänger. Fangen wir also an:
1. Zielstellung: was muss das Skript können?
Beim Aufruf unserer Webseite soll die Zahl der bisherigen Zugriffe angezeigt werden.
Diese Zahl muss das Skript in einer Datei speichern. Diese Datei soll also geöffnet und der darin gespeicherte alte Zählerstand geladen werden. Falls diese Datei noch nicht existiert, soll das Skript sie anlegen. Den alten Zählerstand muss das Skript um 1 erhöhen. Anschließend soll der neue Wert in der Datei gespeichert und zum Schluss die Zahl der bisherigen Zugriffe angezeigt werden.
2. Orientierungsphase: wie ist der Programmablauf?
Veranschaulichen wir uns den Programmfluss anhand einer Grafik:
3. Realisierung:
Eingabe: $datei = "counter.dat"; $verzeichnis = "counter/";
// Datei existiert?
if(file_exists($verzeichnis.$datei)) {
// 1. Fall - wenn ja:
// lese Datei
$dateiInhalt = file($verzeichnis.$datei);
// zähler=Dateiinhalt
$zaehler = $dateiInhalt[0];
Erklärung: $array = file("dateiname") liest eine Datei vollständig und liefert als Ergebnis ein Array zurück, dessen einzelne Werte den Inhalt der Zeilen der Datei enthalten. $array[0] ist also Zeile 1, $array[1] ist Zeile 2, ... $array[count($array)-1] ist die letzte Zeile. Unsere Datei hat lediglich eine einzige Zeile: sie enthält den aktuellen Zählerstand. Das könnten wir aber auch ändern, falls wir zum Beispiel noch Kommentare einfügen wollten. Die Zeilennummer würde sich dann entsprechend ändern.
} else {
// 2. Fall - wenn nein:
// erstelle Datei
$file = fopen($verzeichnis.$datei, "w+");
fclose($file);// zähler=0
$zaehler = 0;
}Erklärung: $file = fopen("dateiname", "modus") öffnet die angegebene Datei und gibt ein Handle auf diese Datei zurück. Als "Modus" kann gewählt werden: (read) "r" = nur lesen, "r+" = nur lesen, wenn nicht vorhanden wird die Datei erstellt, (write) "w" = nur schreiben, beim Schreiben wird der Dateiinhalt ersetzt, "w+" = lesen und schreiben, beim Schreiben wird der Dateiinhalt ersetzt, ist die Datei nicht vorhanden wird sie erstellt, (append) "a" = nur schreiben, hängt alles was geschrieben wird an die Datei an, wenn sie nicht existiert wird sie erstellt, "a+" lesen und schreiben, hängt alles was geschrieben wird an die Datei an, wenn sie nicht existiert, wird sie erstellt.
Erklärung: fclose($file) schließt eine geöffnete Datei.
// zähler + 1
$zaehler += 1;
// Datei speichern
$file = fopen($verzeichnis.$datei, "w+");
fwrite($file, $zaehler);
fclose($file);Erklärung: fwrite($file, "Text") schreibt eine Zeichenfolge in eine geöffnete Datei.
// Ausgabe zähler
echo $zaehler;
Ausgabe: 1
That's it! Dies sollte für Anfänger eines der ersten PHP-Programme sein, an dem sie sich probieren. Der Counter den sie hier gerade geschrieben haben (falls sie fleißig mitmachen) kann natürlich noch nicht so viel wie der, welchen wir zum Download anbieten, aber für den Anfang können sie schon stolz auf ihre Arbeit sein.