vmx: Counter wird nicht aktualisiert

HI!

Also: Ich habe einen grafischen Counter der keine SSI's brauchtin Perl selber geschrieben.
(Er funktioniert so ähnlich wie das MeySoft Page Counter Script.)
In der Datei, in der die Zahl die dem Counter übergeben werden soll, wird immer beim IE5 bei jedem Zugriff (Aktualisieren) erhöht, beim NS4.6 wird sie nicht erhöht.
Mein problem: Die  Anzeige auf der Seite wird nicht upgedated, wenn man auf beim IE5 auf Aktualisieren klickt, oder die URL neu eintippt, obwohl die Datei eine andere Zahl enthält.

Hier ist das Script:

-----------------------------------------------------

#!perl

$get = $ENV{'QUERY_STRING'};

$whichpagecut = index($get,"&") - 5;
$whichdigitcut = rindex($get,"=") + 1;

$whichpage = substr($get,5,$whichpagecut);
$whichdigit = substr($get,$whichdigitcut);

@digitstemp = " ";
@digits = " ";

$v = 0;

$counterfilelength = 0;

if($whichdigit==0) {
&readpagefile;
&addhit;
}
else {
  &readpagefile;
}

sub readpagefile {
  if(open(PAGES, "<vmxcount/pages/$whichpage.vmx")) {
    open(PAGES, "<vmxcount/pages/$whichpage.vmx");
    while(<PAGES>) {
      $hits = $_;
    }
    close(PAGES);
  }
  else{
    &createpagefile;
  }
}

sub createpagefile {
  open(PAGES, ">vmxcount/pages/$whichpage.vmx");
  print PAGES "0";
  close(PAGES);
  &readpagefile;
}

sub addhit {
  open(PAGES, ">vmxcount/pages/$whichpage.vmx");
  $hits = $hits + 1;
  print PAGES "$hits";
  close(PAGES);
}

$counterfilelength = length($hits);
$l = $counterfilelength - 1;

for($j=0;$j<=$counterfilelength;$j++) {
  $digitstemp[$j] = substr($hits,$v,1);
  $v++;
}

$k = 0;
while($k<$counterfilelength) {
  $digits[$k++] = $digitstemp[$l--];
}

if($whichdigit<$counterfilelength) {
  print "Pragma: no-cache\n";
  print "Content-type: image/gif\n";
  print "Location: http://127.0.0.1/page/vmxcount/digits/$digits[$whichdigit].gif\n\n";
}
else {
  print "Pragma: nocache\n";
  print "Content-type: image/gif\n";
  print "Location: http://127.0.0.1/page/vmxcount/digits/0.gif\n\n";
}

-----------------------------------------------------

Und Hier die HTML Datei, von der aus der Counter aufgrufen wird:

-----------------------------------------------------

<html>
<head>
  <title>cgi-test 1</title>
  <META http-equiv="expires" content="0">
  <meta http-equiv="pragma" content="no-cache">
</head>
<body bgcolor="#000033" text="#cccccc" link="#fa9f04" alink="#ffaf00" vlink="#d08000">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=13">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=12">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=11">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=10">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=9">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=8">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=7">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=6">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=5">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=4">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=3">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=2">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=1">
<img src="http://127.0.0.1/cgi-bin/vmxcount.cgi?page=test001&digit=0">
</body>
</html>

-----------------------------------------------------

Ich hoffe irgendwer kann helfen,
  CU,
    vmx.

P.S.: Das script wurde bisher nur lokal auf dem Apache server getestet.

  1. Es könnte sich dabei ganz einfach um eine "Cache Täuschung" handeln.
    Die Bilder für deinen Counter werden beim reload aus dem Cache geladen, daher sieht es so aus, als wäre der Counter nicht upgedatet worden. Probier mal den IE ganz zu schließen und erneut zu starten und dann wieder die Seite aufzurufen. Ergibt sich dann eine Veränderung?

    Gruß
    Cruz

    1. Es könnte sich dabei ganz einfach um eine "Cache Täuschung" handeln.
      Die Bilder für deinen Counter werden beim reload aus dem Cache geladen, daher sieht es so aus, als wäre der Counter nicht upgedatet worden. Probier mal den IE ganz zu schließen und erneut zu starten und dann wieder die Seite aufzurufen. Ergibt sich dann eine Veränderung?

      Gruß
      Cruz

      HI Cruz!

      Das geht schon, aber ich habe schon so ziemlich alles versucht, damit er es nicht in den Cache schreibt, er tut es aber.
      hat irgendwer Hilfe?

      THANX,
        CU,
          vmx.

      1. Hi vmx,

        hm also bei meinem counter, <www.pofo.de> funzt es auch nur mit SHIFT+Reload. oder besser es funzte mal *g* folgende Fkt. habe ich eingebaut (Danke nochmal an Thomas J.S. der meien Seite so an die 100 mal reloaded hat ohne ihn...).
        ($nsec,$nmin,$nhour,$nday,$nmon,$nyear,$wday,$yday,$isdst) = localtime(time+($time_miss*3600));
        $nmon++;
        if ($nmon<10) {$nmon="0$nmon";}
        if ($nday<10) {$nday="0$nday";}
        if ($nhour<10){$nhour="0$nhour";}
        if ($nmin<10) {$nmin="0$nmin";}
        if ($nsec<10) {$nsec="0$nsec";}
        $normal_time = "$nyear-$nmon-$nday-$nhour-$nmin";

        @ip[0] = 1;
        open (reload, "/home/wS70/htdocs/counter/reload.txt");
        while (defined($i = <reload>)){
        @zwi_ip= split(/-/,$i); #--->Trenne die IP vom Datum IP->0 Jahr->1 Monat->2 Tag->3 Stunde-4 Minute ->5
        if (@zwi_ip[0] == $ENV{'REMOTE_ADDR'}) { @ip=@zwi_ip};
        }
        close(reload);

        if ($position==1) {
        unless (@ip[0] != 1 && @ip[1] == $nyear && @ip[2] == $nmon && @ip[3] == $nday && @ip[4]+1 >= $nhour && @ip[5] >= $nmin)
        {
        $number++;
        };
        open (reload, ">>/home/wS70/htdocs/counter/reload.txt");
        print reload "$ENV{'REMOTE_ADDR'}-$normal_time\n";
        close(reload);

        sobald ein reload mit der selben IP innerhalb einer h durchgeführt wird wird der Zähler einfach nciht erhöht

        MfG Olli *g*

        ps. Kennt jemand ne bessere Variante für nen Relaodschutz?

      2. Das geht schon, aber ich habe schon so ziemlich alles versucht, damit er es nicht in den Cache schreibt, er tut es aber.
        hat irgendwer Hilfe?

        a) Shift-Reload bei Netscape probieren?
        b) Cache-Größe auf 0 KB setzen?