Counter zählt falsch

puckido

Mitglied
Hi,
ich habe versucht einen grafischen Counter in php zu realisieren, funktioniert auch soweit, nur zählt der Counter immer +2 anstatt +1?
z.b.
schreibe ich in counter.txt 0 und er gibt 1 aus, richtig soweit, aber in der counter datei steht 2!
Bei erneutem aufruf gibt er aber 3 aus und schreibt 4 in counter.txt.

Komme einfach nicht auf den Fehler.

Hier das Script:
PHP:
<?php

/////////////////// Counter ///////////////////


$filename = "counter.txt";
$datafile = fopen($filename , "r");

$zahl = fgets($datafile, "50");
fclose($datafile);


$zahl = ++$zahl;

$datafile = fopen($filename , "w+");
flock($datafile, "2");
$null = fwrite($datafile, $zahl);
flock($datafile, "3");
fclose($datafile);

/////////////////// Bild malen ///////////////////

header ("Content-type: image/gif");

$mein_bild = ImageCreate (500, 20);
$white = ImageColorAllocate ($mein_bild, 0, 0, 0);
$gruen = ImageColorAllocate ($mein_bild, 50,148,0);
imagecolortransparent($mein_bild,$white);
imageFilledRectangle($mein_bild,20,20,280,130,$white);
ImageString ($mein_bild, 5, 2, 2, "Diese Seite wurde schon ". $zahl ." mal aufgerufen!", $gruen);
imagegif($mein_bild);

?>

Grüße und THX im Voraus
 
geht doch?

<?php

/////////////////// Counter ///////////////////

$filename = "counter.txt";
$datafile = fopen($filename , "r");
$zahl = fgets($datafile, "50");
fclose($datafile);
$zahl = ++$zahl;
$datafile = fopen($filename , "w+");
flock($datafile, "2");
$null = fwrite($datafile, $zahl);
flock($datafile, "3");
fclose($datafile);

echo $zahl;
?>

also bei mir klappt das alles. jedesmal wenn ich die seite neu lade erhöht sich die zahl um eins. noch ein hinweis: es ist egal ob $zahl++ oder ++$zahl.
welche php version hast du?
 
Hallo,
du musst entweder
$zahl = $zahl + 1;
oder
$zahl++;
nehmen.
Eine Mischung aus beidem gibt es nicht bzw. funktioniert nicht.

mfg
forsterm
 
Zuletzt bearbeitet:
die 5.1.1 hab ich auf meinem server.

Witzigerweise funktioniert das:
PHP:
<?php 

/////////////////// Counter /////////////////// 

$filename = "counter.txt"; 
$datafile = fopen($filename , "r"); 
$zahl = fgets($datafile, "50"); 
fclose($datafile); 
$zahl = ++$zahl; 
$datafile = fopen($filename , "w+"); 
flock($datafile, "2"); 
$null = fwrite($datafile, $zahl); 
flock($datafile, "3"); 
fclose($datafile); 

echo $zahl; 
?>

Bei mir auch.
 
Zuletzt bearbeitet:
Hallo,
stimmt, das ist wirklich komisch, so:
$zahl = $zahl++;
funktioniert es nicht, dafür aber so:
$zahl = ++$zahl;
und so:
$zahl++;

mfg
forsterm
 
Zurück