Tom: Einfacher Counter - geht leider nicht

Beitrag lesen

Hello,

<?php
 $cfile = "count.txt"; // Zaehldatei  #ok

if(!file_exists($cfile))

$fh = fopen($cfile,'a');     # Datei neu anlegen oder zum Anhängen öffen
if (!$fh)
{
  exit;  # oder eben einfach nicht zählen...
}
fclose($fh); # Dummy-Handle wieder zurückgeben.

$fh = fopen($cfile, 'rb+');  # Datei binär zum Lesen und Schreiben öffnen

$fh = fopen($cfile, "r") or die("Konnte Zählerdatei nicht öffnen!");
if (!flock($fh, LOCK_EX))
{
  fclose($fh);
  exit;         # oder eben wieder einfach nicht zählen
}

$count = intval(fgets($fp, 1024));

fclose($fp);  // Datei wieder schließen # nein, keinesfalls das Handle weggeben!

session_start(); // Session starten (Reloadsperre)

#if(!$PHPSESSID) // bei neuer Session erhöhen  # ob das wirklich funktioniert?
                    # siehe 'register_globals' im Archiv

$sname = session_name();
if (empty($_COOKIE[$sname]) and empty($_POST[$sname]) and emtpy $_GET[$sname]))

$count++;

$fp = fopen($cfile, "w") or die("Konnte Zählerdatei nicht öffnen!"); # ist schon offen

fseek($fh, 0, SEEK_SET);  # Dateizeiger auf Anfang
fputs($fh, $count);
ftruncate($fh,strlen($count));  # Dateilänge anpassen. Wenn immer nur erhöht wird, kann das entfallen

fclose($fp);

print("$count");
?>

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

Tom

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