Ein einfacher Counter ohne Cookies und ohne Datenbank
ein counter soll in erster linie nichts anderes machen als beim aufruf einer seite den bestehenden wert auf einer textdatei zu lesen, den aktuellen besucher mit +1 dazu zu addieren und den neuen wert wieder in der textdatei abzulegen. der neu abgelegte werd kann dann abgerufen werden und in beliebiger form ausgegeben werden. beschränken wir uns an der stelle erst mal auf die reine textausgabe. auf das html gerüst der seite möchte ich garnicht weiter eingehen. gehen wir also gleich an den php teil der die textdatei einließt, +1 addiert und das ganze dann speichert und als einfachen text ausgibt.
|
PHP Source code
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
<?php
if(!file_exists("count.txt"))
{
fopen("count.txt","a");
fclose("count.txt");
}
$counter=fopen("count.txt","r+");
$aufruf=fgets($counter,100);
$aufruf=$aufruf+1;
rewind($counter);
fputs($counter,$aufruf);
echo $aufruf;
fclose("count.txt");
?>
|
erläuterung
der teil in der if bedingung dient dazu zu ermitteln ob die datei bereits vorhanden ist. wenn nicht wird sie mittels fopen und dem atribut "a" (add) angelegt. falls diese vorhanden ist wird der teil übersprungen da die if bedingung nicht erfüllt ist. dabei wird der befehl "file_exists" angewendet welcher true oder false zurück liefert. durch das "!" davor negiert man quasie die abfrage. das heißt es heißt dann nicht mehr "wenn die datei existiert dann mach dies und jenes" sondern "wenn die daten
nicht existiert dann mach dies und jenes".
danach wird nun die vorhandene datei in den schreib/lese zugriff genommen (atribut "r+") und mit fgets wird nun beginnend am anfang der datei eine zeichenkette eingelesen die entweder 100 zeichen lang sein kann oder maximal bis zum zeilenende. diese zeichenkette befindet sich nun in der variable "$aufruf". die zeichenkette ist bei uns auf jeden fall numerisch und kann somit ganz einfach mit rechenoperationen angewendet werden. wir addieren also die zahl 1 (für den aktuellen besucher). durch den befehl "rewind" erreichen wir das die cursor position nun wieder an den anfang der noch offenen textdatei spring. wir möchten den neuen counterstand ja über den alten schreiben und nicht hinten dran hängen. der befehl fputs bewirkt nun das die datei mit dem neuen wert gespeichert wird. der echo befehl gibt uns nun ganz einfach den inhalt der variable "$aufruf" aus in der sich der aktuelle counterstand befindet.
dieses kurze skript reicht schon aus um einen einfachen zähler zu generieren. allerdings fehlen hier einige elemente die zum beispiel verhindern das durch drücken von "reload" der counterstand in die höhe getrieben werden kann. er ist somit also nur als basis erläuterung zur vorgehensweise gedacht und sollte auf jeden fall weiter ausgebaut werden. wie man diesen counter nun erweitert beschreibe ich im nächsten Teil meines kleinen Counter Tut's