Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : counter und die probleme :(



johnpatcher
15-12-2003, 16:15
hi,

ich habe mir einen einfachen counter mit reloadsperre runtergeladen und er funktioniert auch so weit :D! nur will ich auf meiner seite eine "statistik" einbauen! und zwar soll in einer spalte einer tabelle angezeigt wie viele user heute auf der seite waren! das funktioniert soweit! wie kann ich es jedoch machen, dass ich es schaff angezeigt zu bekommen wieviel user gestern auf der seite waren? dazu hab ich mir folgendes überlegt:

ich will am ende des tages 24:00 Uhr die aktulle user zahl auslesen und in eine textdatei schreiben die den namen hat : user_yesterday! dann will ich die datei an der stelle wo es hingehört includen!!

wie kann ich es allerdings machen, dass um 24:00 Uhr die zahl der user in eine andere datei geschrieben wird und der die eigentlich datei wieder auf 0 gesetzt wird??

johnpatcher

offe
15-12-2003, 17:20
den Tag in die Datei schreiben und falls es ein neuer Tag ist Datei umbenennen und eine neue Datei mit Zähler = 1 und neuem Datum anlegen.

Offe

johnpatcher
16-12-2003, 13:39
wie mach ich es denn das immer ein neue datei gemacht wird? ich will ja den befehl wissen, damit der server weiß wann er ne neue datei erstellen muss!!

johnpatcher

johnpatcher
17-12-2003, 20:06
kann mir denn keiner helfen?

Badsteve
17-12-2003, 20:09
wieso machst du nicht einfach für jeden Tag eine eigene Datei mitm Datum im Dateinamen?

Steve

sixfriends
20-12-2003, 14:22
Ich würd es so machen:
Du schreibst in deine Datei das aktuelle Datum rein. Beim neuen Seitenaufruf prüfst du nun:
1. Aktuelles Datum = Datum in der Datei --> Zähler um 1 erhöhen
2. Aktuelles Datum = Datum in der Datei + 1 Tag --> Datei in die yesterday umwandeln, Zähler auf 1 setzen.
3. Aktuelles Datum > Datum in der Datei + 1 Tag --> In die yesterday eine 0 schreiben, Zähler auf 1 setzen.

Sinnvoller wäre natürlich, alles in eine Datei zu packen

johnpatcher
21-12-2003, 13:52
so wollt ich es ja machen! nur wie?????

comrad
22-12-2003, 07:12
hi

mach es doch so:

Erstell einen Dateinamen anhand des aktuellen Datums: z.B. 20031222.log

Bevor du schreibst, wird dieser Dateiname erzeugt und so hast du automatisch die Zugriffe in der richtigen Datei.
edit: hab grad gesehen, dass jemand schon die Idee vor mir hatte.

comrad

sixfriends
22-12-2003, 13:23
$file = fopen("counter.dat", "r+");
$date = (int)fgets($file,20);
$counter = (int)fgets($file,20);
rewind($file);
$day = 86400; //1 Tag in Sekunden
if ($date > time()-$day) { //Datum in Datei keine 24 Stunden alt
$counter++;
fwrite($file, $date);
fwrite($file, $counter);
} else {
if ($date > time()-2*$day) { //Datum = gestern
$yesterday = $counter;
} else { //Datum irgendwann
$yesterday = 0;
}
$fileOld = fopen("yesterday.dat", "w");
fwrite($fileOld, $yesterday);
fclose($fileOld);
$dayArray = explode ("|", date("n|j|Y"));
$currentDay = mktime(0,0,0,(int)$dayArray[0], (int)$dayArray[1], (int)$dayArray[2]);
fwrite($file, $currentDay);
fwrite($file, 1); //Erster Besucher für heute
}
fclose($file);


Jetzt zufrieden?