Halihallo Alexander
Das funktioniert hervorragend mit den verschiedensten Browsern (getestet mit IE ab 4, NN ab 4.0x, Opera ab 3.x, Mozilla).
Das klingt ja schon mal gut. Nur würde mich interessieren, welche Browser sich eben _nicht_ an die Spielregeln halten.
Wie es geht: Erstmal sag ich mit pragma=>nocache, das der Browser diesen Request besser nicht in den Cache packt. Dann sorge ich mit expires=>-1d noch dafür, daß die Seite vor 24 Stunden veraltet ist. "Cache-Control: no-cache" oder so könnte man auch noch einbauen.
Jep.
Ansonsten müßtest Du deine HTML-Seiten dynamisch auf dem Server erzeugen, und dafür sorgen, daß in dem IMG-Tag immer ein Teil der URL veränderlich ist. Das kann der Browser dann nicht mehr cachen.
Mit SSI (und Apache) müßte das ungefähr so gehen:
<!--#config timefmt="%s" --><!-- Sekunden seit der Epoche -->
<IMG SRC="/cgi-bin/statistik.cgi/<!--#echo encoding="url" var="DATE_GMT" -->/<!--#echo encoding="url" var="REMOTE_ADDR" -->" ALT="Just a counter">
Jep. Das war auch mein Vorschlag mit dem JS-Script, was eine Zufallszahl an die URL angängt (kommt IMO aufs selbe raus). Jedoch kann ich dass nicht über SSI oder Serverscripts lösen, da ich die Pages nicht hoste. Deshalb die Lösung über den Client => JS.
Aber danke für die SSI-Comms, die kannte ich noch gar nicht (hab mich ehrlichgesagt auch noch nicht viel damit beschäftigt).
Das CGI bekommt als PATH_INFO die Aufrufzeit der SSI-Seite und die Remote IP-Adresse, getrennt durch Slashes. Die Aufrufzeit ist nützlich, um die Ladezeiten abzuschätzen, die IP-Adresse zum Verfolgen der User. Eine Zufallszahl wäre noch ganz nett, aber dafür braucht man bei SSI externe Prozesse, die in der Performance recht teuer sind. Ansatz: <!--#exec cmd="/usr/local/bin/perl -e 'print rand'" --> oder <!--#include virtual="/cgi-bin/internal/random" -->
Wie willst du denn die Ladezeiten abschätzen? - Etwa die Differenz der Zeiten vom ersten bis zum letzten Hit auf die Domain mit gleicher IP? - Au waya, das würde aber bitter ins Auge gehen. Schliesslich können 1'000 Rechner dieselbe IP haben... Und eventuell lagern die Objekte auch nicht auf der selben Domain (was zwar unwahrscheinlich ist). Hinzukommt, dass der selbe User ja zwei Browserfenster gleichzeitig mit der selben Page offen hat => das führt zu Verfälschungen. Desweiteren müsstest du eine Art Zeitfenster willkührlich festlegen, wann _ein_ Zugriff spätestens fertig sein muss, da du sonst (eventuell) die Differenz zweier Requests zählst...
IP zum Verfolgen der User? - Naja, damit kann ich mich noch anfreunden. Kommt etwa auf das selbe Chaos hinaus, als wenn ich Cookies verwenden würde, leider ;)
Viele Grüsse und Danke
Philipp