<?php
// uonline.txt muss erstellt werden und chmod 666
$onlinezeit="600"; // Onlinezeit in Sekunden
$filedata="Demo/uonline.txt"; // Pfad zur Speicherdatei
// Datei auslesen
function read_data($filedata){
$datei=fopen($filedata,"r");
$daten=fread($datei,filesize($filedata)+1);
fclose($datei);return $daten;
}
// Datei bereinigen
function reinigen($filedata){
$daten=read_data($filedata);
$zeile=explode("|*|",$daten);
for($i=0;$i<count($zeile);$i++){
$spalte=explode("|",$zeile[$i]);
if(time()>=$spalte[1]){
$daten=str_replace($spalte[0]."|".$spalte[1]."|*|","",$daten);
}
}
$datei=fopen($filedata,"w");
fwrite($datei,$daten);
fclose($datei);
}
// IP prüfen
function ip_check($filedata){
$check="";
$ip=$_SERVER['REMOTE_ADDR'];
$daten=read_data($filedata);
$zeile=explode("|*|",$daten);
for($i=0;$i<count($zeile);$i++){
$spalte=explode("|",$zeile[$i]);
if($ip==$spalte[0]){
$check=1;
}
}
return $check;}
// IP dazuschreiben
function counter($onlinezeit,$filedata){
$ip=$_SERVER['REMOTE_ADDR'];
$dauer=time()+$onlinezeit;
$check=ip_check($filedata);
if($check!=1){
$datei=fopen($filedata,"a");
fputs($datei,$ip."|".$dauer."|*|");
fclose($datei);
}
}
// Anzahl Online auslesen
function ausgabe($filedata){
$daten=read_data($filedata);
$zeile=explode("|*|",$daten);
$ausgabe=count($zeile)-1;
if($ausgabe==0){
$ausgabe=1;
}
echo $ausgabe;
}
// Starten
reinigen($filedata);
counter($onlinezeit,$filedata);
ausgabe($filedata);
?>