Hello,
Ganz korrekt sieht deine Version aber auch nicht aus, meine wird so funktionieren im gegensatz zu deiner ;) Oder müssen funktionen jetzt in Variablen geschrieben werden?
Nein, natürlich nicht. da ist was verloren gegangen
<?php ### counter.php ###
$dateihandle = fopen("besucher.txt","a+"); ## Datei zerstörungsfrei öffnen oder anlegen
if($dateihandle and flock($dateihandle,LOCK_EX)) ## wenn ein Handle erteilt wurde, wird solange
{ ## gewartet, bis locked werden konnte
$seek_ok = fseek($dateihandle,0,SEEK_SET); ## Dateizeiger auf Anfang
$besucher = intval(fgets($datei,255)); ## Typconvertierung in Ineteger des gelesenen Wertes
$besucher++; ## incrementieren
$seek_ok = $fseek($dateihandle,0,SEEK_SET); ## Dateizeiger auf Anfang
fputs($dateihandle,$besucher); ## zurückschreiben
$ftruncate($dateihandle,strlen($besucher)); ## Dateilänge anpassen
fclose($dateihandle); ## beim Close wird automatisch unlocked
}
else
{
mail("webnmaster@domain.tld","Fehler beim Counter","Der Counter konnte nicht zaehlen");
}
?>
So sollte es jetzt richtig sein.
Aenn ich auf Deine Version ein 'ab' ansetze, ist der Countertinhalt nach wenigen Sekunden hinüber.
Das Truncate nach dem Schreiben ist wichtig, dass ggf. ünerhängende alte Inhalte gekürst werden.
Aber nicht bei einem Counter, völlig unnötig bei einer Datei von wenigen bytes
Was sabbelst Du da? Wenn man mit dem zerstörungsfreien Mode 'a+' arbeiten, muss das sein.
Da die Datei nur eine einzige Variable enthält, darf da nichts mehr überschießen, sonst ist das Datenformat kaputt.
Harzliche Grüße aus http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau