Für mich spielt es im Prinzip keine Rolle ob Datei oder Datenbank.
Dantenbank wäre sicherlich von der Verarbeitung etwas schneller. Da ich aber php newbie bin, fällt mir die Dateiverarbeitung noch leichter.
Den Zähler setze ich ab und an auch wieder auf 0.
@Danny, wie hast du es denn gelöst, dass die Datei nicht doppelt geschrieben werden kann?
Auf Webseiten, die wenig besucht sind, funktioniert der von mir oben gepostete Zähler. Es geht nur um meine Hauptseite, die bis zu 10000 Seitenaufrufe/Tag hat. Hier kommt es leider vor, dass 2 User Gleichzeitig auf den Zähler zugreifen. Passiert dies, so wird nichts in die Zählerdatei gespeichert.
Die Chance, dass 2 User zur exact selben Zeit auf den Zähler zugreifen ist zwar gering, aber es passiert.
Gruß
Xelos
PHP Zähler Problem
Wie meinst du das? Es besteht ein Eintrag in der Datenbank und zwar die Anzahl der Seitenaufrufe.
Kommt ein User auf deine Seite, so wird dieser Wert ausgelesen, um einen Zähler erhöht und anschließend per UPDATE in die Datenbank gespeichert.
Damit verhindert wird, dass nochmal beim nächsten Seitenaufruf +1 gerechnet wird, wird ein Cookie gesetzt. Dieses bleibt 24 Stunden bestehen, so dass wenn er am nächsten Tag kommt, wieder als "Besucher" gezählt wird.
Mit freundlichen Grüßen,
Dani
Kommt ein User auf deine Seite, so wird dieser Wert ausgelesen, um einen Zähler erhöht und anschließend per UPDATE in die Datenbank gespeichert.
Damit verhindert wird, dass nochmal beim nächsten Seitenaufruf +1 gerechnet wird, wird ein Cookie gesetzt. Dieses bleibt 24 Stunden bestehen, so dass wenn er am nächsten Tag kommt, wieder als "Besucher" gezählt wird.
Mit freundlichen Grüßen,
Dani
Ihr wohnt im Süd-Westen Deutschlands?
|- Nehmt an der Schwäbischen phpBB Usergroup teil!
|- Nehmt an der Schwäbischen phpBB Usergroup teil!
-
- Mitglied
- Beiträge: 129
- Registriert: 18.11.2003 18:15
- Wohnort: Schnaitsee
- Kontaktdaten:
Ja aber man kann einen Besucher schon wieder dazuzählen wenn er nach einem Tag wieder kommtdannyjansen hat geschrieben:Die Cookie abfrage ist vorher. Dadurch wird es nicht erhöht. Die Cookie abfrage ist länger! Nicht 24h!
@Xelos: Ich weiß nicht wie ich das gelöst habe, ich weiß nur das es funktioniert!
Wer den Zähler braucht, soll mir sagen wie und was für funktionen er braucht.
Danny

Mit freundlichen Grüßen,
Dani
Ihr wohnt im Süd-Westen Deutschlands?
|- Nehmt an der Schwäbischen phpBB Usergroup teil!
|- Nehmt an der Schwäbischen phpBB Usergroup teil!
Nö, Cookies werden von mir nur in äusserst seltenen Fällen zugelassen.
Code: Alles auswählen
$counter_file = '/tmp/counter.txt';
clearstatcache();
ignore_user_abort(true);
if (file_exists($counter_file)) {
$fh = fopen($counter_file, 'r+');
while(1) {
if (flock($fh, LOCK_EX)) {
#$buffer = chop(fgets($fh, 2));
$buffer = chop(fread($fh, filesize($counter_file)));
$buffer++;
rewind($fh);
fwrite($fh, $buffer);
fflush($fh);
ftruncate($fh, ftell($fh));
flock($fh, LOCK_UN);
break;
}
}
}
else {
$fh = fopen($counter_file, 'w+');
fwrite($fh, "1");
$buffer="1";
}
fclose($fh);
print "Count is $buffer";