Useronline Anzeige

new001

Grünschnabel
Hallo,

ich habe ein Problem! Ich habe ein Useronline Script bekommen von einem Bekannten.
Dies soll mir wohl die User die sich gerade auf der Seite befinden anzeigen.

Hier der Code

PHP:
<?PHP
$daten="besucher.txt";
$time = time();
$ip = getenv("REMOTE_ADDR");
$ablaufzeit = "$time"-"300";
$pruefung = @file($daten);
while (list ($line_num, $line) = @each ($pruefung)) 
{$zeiten = explode("&&",$line);
if($zeiten[0] <= $ablaufzeit)
{$fp = fopen( "$daten", "r" ); 
$contents = fread($fp, filesize($daten)); 
fclose($fp);
$line=quotemeta($line); 
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);}}
$ippruefung = @file($daten);
while (list ($line_num, $line) = @each ($ippruefung)) 
{$ips = explode("&&",$line);
if($ips[1] == $ip)
{$fp = fopen( "$daten", "r" ); 
$contents = fread($fp, filesize($daten)); 
fclose($fp);
$line=quotemeta($line); 
$string2 = "";
$replace = ereg_replace($line, $string2, $contents);
$fh=fopen($daten, "w");
@flock($fp,2);
fputs($fh, $replace);
@flock($fp,3);
fclose($fh);}}
$fp = fopen("$daten", "a+");
flock($fp,2);
fputs ($fp, "$time&&$ip&&\n");
flock($fp,3);
fclose ($fp);
$anzahldaten = file($daten);
$anzahl = count($anzahldaten);
echo "<font face=\"Arial, Helvetica, sans-serif\" size=\"1\">$anzahl User online</font>";
?>


Aber irgendwie zeigt er mir immernur ein User an... Warum ? oder liegt das an der zeit ?

bin dankbar für jede hilfe !

THX and Goodbye New001
 
Der Quellcode sieht ja grausam aus. Frag mal deinen Bekannten, ob er ihn dir in dieser Form erklären könnte – ich könnte das nicht.

Hier eine etwas besser lesbare Version:
PHP:
<?php

	$daten = 'besucher.txt';
	$time = time();
	$ip = $_SERVER['REMOTE_ADDR'];
	$ablaufzeit = $time - 300;
	$pruefung = @file($daten);
	while( list($line_num, $line) = @each($pruefung) ) {
		$zeiten = explode("&&",$line);
		if($zeiten[0] <= $ablaufzeit) {
			$fp = fopen($daten, "r");
			$contents = fread($fp, filesize($daten)); 
			fclose($fp);
			$line=quotemeta($line); 
			$string2 = "";
			$replace = ereg_replace($line, $string2, $contents);
			$fh=fopen($daten, "w");
			@flock($fp,2);
			fputs($fh, $replace);
			@flock($fp,3);
			fclose($fh);
		}
	}
	$ippruefung = @file($daten);
	while( list($line_num, $line) = @each($ippruefung) ) {
		$ips = explode("&&",$line);
		if($ips[1] == $ip) {
			$fp = fopen( "$daten", "r" ); 
			$contents = fread($fp, filesize($daten)); 
			fclose($fp);
			$line=quotemeta($line); 
			$string2 = "";
			$replace = ereg_replace($line, $string2, $contents);
			$fh=fopen($daten, "w");
			@flock($fp,2);
			fputs($fh, $replace);
			@flock($fp,3);
			fclose($fh);
		}
	}
	$fp = fopen("$daten", "a+");
	flock($fp,2);
	fputs ($fp, "$time&&$ip&&\n");
	flock($fp,3);
	fclose ($fp);
	$anzahldaten = file($daten);
	$anzahl = count($anzahldaten);
	echo "<font face=\"Arial, Helvetica, sans-serif\" size=\"1\">$anzahl User online</font>";

?>
 
danke das du mir das mal n bissel sortiert hast... aber das hilft mir nicht wirklich weiter oder ?

hast du keine lösung irgendwie parat ?
 
Ehrlich gesagt, habe ich keine besondere Lust, die Funktionsweise des Skriptes aus diesem Wirrwarr herauszufinden. Hat dein Bekannter denn dazu keine Stellung genommen? Ich meine, wenn er es entwickelt haben sollte, dann müsse er doch auch über die Funktionsweise Bescheid wissen und die mögliche Fehlerquelle finden können.
 
hmmm ja... sollte er eigentlich schon... nur ich bekomm den nicht mehr an die strippe. deswegen poste ich es ja hier.
 
Zurück