SilentWarrior
Erfahrenes Mitglied
Moin Leuts
Hab mir mal in stundenlanger Schweissarbeit *gg* nen eigenen User-Online-Anzeiger gebastelt. Jetzt wollte ich einfach mal fragen, ob der funzt. Wäre sehr dankbar wenn ihr mir mitteilen würdet was noch verbessert werden kann bzw. was sicher nicht funzt. musste es leider mit ner text-datei machen, daher recht umständlicher code:
thx schonmal
grüsse
silent
Hab mir mal in stundenlanger Schweissarbeit *gg* nen eigenen User-Online-Anzeiger gebastelt. Jetzt wollte ich einfach mal fragen, ob der funzt. Wäre sehr dankbar wenn ihr mir mitteilen würdet was noch verbessert werden kann bzw. was sicher nicht funzt. musste es leider mit ner text-datei machen, daher recht umständlicher code:
PHP:
<?php
// überprüfen, ob IP-Adresse bereits in online.txt vorhanden ist
$datei = fopen("online.txt","r+");
$erhoehen = "true";
$zeitlimit = time() - 120;
while(!feof($datei))
{
// String mit allen IPs und Timestamps erzeugen
$alle_benutzer_online .= fgets($datei);
}
if(!eregi("||",$alle_benutzer_online) and $alle_benutzer_online!="")
{
// nur ein Eintrag vorhanden
$array_eine_ip_und_ein_timestamp = explode("|",$alle_benutzer_online);
if($array_eine_ip_und_ein_timestamp[0]==$REMOTE_ADDR && $array_eine_ip_und_ein_timestamp[1]<$zeitlimit)
$erhoehen = "false"; // IP-Adressen identisch, Dauer länger als 2 Minuten
}
elseif(eregi("||",$alle_benutzer_online))
{
// mehrere Einträge vorhanden
// gesamte Datei in IP-Timestamp-Pakete splitten
$array_einzelne_user = explode("||",$alle_benutzer_online);
// einzelne Pakete splitten
for($i=0;$i<sizeof($array_einzelne_user;$i++)
{
$array_eine_ip_und_ein_timestamp = explode("|",$array_einzelne_user[$i]);
if($array_eine_ip_und_ein_timestamp[0]==$REMOTE_ADDR && $array_eine_ip_und_ein_timestamp[1]<$zeitlimit)
$erhoehen = "false"; // IP-Adresse gefunden, Dauer länger als 2 Minuten
}
}
if($erhoehen=="true")
{
if($alle_benutzer_online=="")
$alle_benutzer_online = $REMOTE_ADDR . "|" . time(); // Datei leer: Eintrag ohne "||"
else
$alle_benutzer_online .= "\n||" . $REMOTE_ADDR . "|" . $time(); // Eintrag mit "||" und Zeilenumbruch
}
rewind($datei);
fwrite($datei,$alle_benutzer_online);
while(!feof($datei))
{
// String mit allen IPs und Timestamps erzeugen
$alle_benutzer_online .= fgets($datei);
}
$alle_die_online_sind = $substr_count($alle_benutzer_online,"||");
$alle_die_online_sind++;
echo $alle_die_online_sind;
fclose($datei);
grüsse
silent