Tom: counter

Beitrag lesen

Hello,

<?
  $fn = "counter.txt";

if (file_exists($fn))
  {
    $fp = fopen($fn, "r");
    $zahl= fgets($fp,10);
    fclose($fp);
  }
  else
  {
    $zahl = 0;
  }

$zahl = $zahl + 1;
  echo "<b>$zahl Besucher seit dem 01.07.03";

$fp = fopen($fn, "w");
  flock($fp,2);
  fputs($fp,$zahl);
  flock($fp,3);
  fclose($fp);
?>

So, mal bitte den Code überprüfen. Bleibt auf "1" stehen und zählt nicht weiter.

So! Mal bitte die Debug-Zeilen zeigen und wo Du sie eingebaut hattest, um den Fehler zu finden. ;-))

Und Dein Locking ist falsch angelegt[1].
Zum Zwecke der Veränderung musst Du bereits VOR dem Lesen exclusiv sperren, das Handle behalten und dann mit demselben Handle wieder zurückschreiben. Erst dann die Datei wieder schließen und damit automatisch das Lock freigeben.

[1] Es gibt da eine Aussage von Eddi (to grip), dass das Mandatory Locking auf manchen Systemen überhaupt nicht funktioniert. Wenn wir die nötige Zeit finden, untersuchen wir das näher. Eddi hat schon einige Lösungen erarbeitet. Das ist aber Fortgeschrittenen-Stoff ;-)

Harzliche Grüße aus http://www.annerschbarrich.de

Tom

--
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau