Also wenn ich jetzt alles richtig verstanden habe muß es so aussehn:
<?php
$f_online = "besucher.txt"; // hier werden die Daten gespeichert
if( file_exists($f_online) ) // Prüfen ob Datei existiert
{
$logoutTime = 300;
$IP = $REMOTE_ADDR;
$users = 0;
$res = "";
$fp = fopen($f_online,"r"); // Öffne zum Lesen und Schreiben
if (!flock ($fp, LOCK_EX)) { // Dateisperren
die ('Sperren der Datei fehlgeschlagen!');// Wenn Dateisperren fehlegschlagen
}
$t = time();
$content = fread($fp,filesize($f_online));
$lineas = split("
",$content);
for( $i = 0; $i < count($lineas); $i++ )
{
$datos = split(":",$lineas[$i]);
$n = $t - $logoutTime;
if ($datos[0] != $IP && $datos[1] > ($n))
{
$res .= "$datos[0]:$datos[1]
";
$usuarios++;
}
}
$res .= "$IP:$t
";
$users++;
fseek ($fp, 0, SEEK_SET); // Dateizeiger wieder auf den Anfang
ftruncate ($fp, 0); // Dateiinhalt löschen
fwrite ($fp,$res); // Datei in Txt schreiben
fclose($fp); // Datei schließen
}
echo $users." User online"; // User online ausgeben
?>
wie Du bei Christian nachlesen kannst, musst Du die Datei zum Lesen und Schreiben öffnen. Ab diesem Zeitpunkt darf keiner mehr die Datei lesen, auch nicht zwischendurch.
Hoffe das ich das richtig verstanden und umgestezt habe. Nur sicher bin ich mir nicht weil die Sperre ja nach der Datei kommt und sie somit noch gelesen werden kann oder?
Aber das andere müste doch soweit schon richtig sein oder?