Hallo
Also hab mir jetzt erst mal nen neues Script besorgt macht zwar genau das gleiche wie das alte aber ich glaub das ist nicht so schlecht wie das alte (hoffe ich):
das ist schon deutlich besser. Es fehlt halt das Sperren der Datei, was Du im Artikel von Christian Seiler (hatte ich schon verlinkt) nachlesen kannst.
Es fehlt ein else-Zweig, wenn die Zugriffsdatei noch nicht existiert, d.h. zum ersten Mal aufgerufen wird ...
$f_online = "besucher.txt"; //hier werden die Daten gespeichert
if( file_exists($f_online) )
{
$logoutTime = 300;
// die Folgezeile kann Probleme bereiten
// Nutze lieber $_SERVER['REMOTE_ADDR'];
// und kopiere nicht unnötig in eine Variable.
$IP = $REMOTE_ADDR;
$users = 0;
$res = "";
$fp = fopen($f_online,"r");
$t = time();
$content = fread($fp,filesize($f_online));
fclose($fp);
$lineas = split("
",$content);
// Den Zeilenumbruch kannst Du lesbarer mit "\n" darstellen.
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++;
$fp = fopen($f_online,"w");
fwrite ($fp,$res);
fclose($fp);
}
$fp2=fopen("test.txt","w");
fwrite($fp2,$users);
fclose($fp2);
echo $users." User online"; // User online ausgeben
?>
Beim normalen Shared Hosting steht Dir in vielen Fällen kein cronjob zur Verfügung. Du könntest Dir allerdings auch ein einfaches Aufräumskript schreiben, das Du z.B. über wget regelmäßig (hier können Dir unter Windows die geplanten Tasks helfen) aufrufst.
Wenn Du Programmieren lernen willst, dann solltest Du versuchen zu verstehen, was der Code, den Du einsetzt, bewirkt. Anschließend kannst Du eigene Änderungen einbringen und so dazu lernen. Hier wäre beispielsweise das Dateisperren ein guter Ansatzpunkt.
Bleibe nicht dort stehen, wo Du jetzt bist: für jeden Zweck irgendwo ein fertiges Skript suchen, dessen Qualität Du nicht beurteilen kannst, dessen Fehler Du nicht bereinigen kannst. Man muss nicht ständig das Rad neu erfinden, aber am Anfang des Programmierens stehen Fingerübungen wie beim Erlernen eines Musikinstrumentes. Der Code liest sich oft genauso übel wie die ersten Zupfversuche auf einer Gitarre klingen. Macht nichts, nur durch Übung kommt man weiter - und irgendwann muss man einmal anfangen, wenn man etwas später können will.
Noch etwas: Kommentiere Deinen Code. Schreibe zuerst Kommentare, was Du tun willst. Setze es erst dann um. Sonst weißt Du in einer Woche nicht mehr, was der Code tun soll.
Freundliche Grüße
Vinzenz