so, ich hab mal den bereich begrenzt, der wichtig ist:
PHP:
$ergebnis = safe_query("SELECT * FROM ".PREFIX."whoisonline ORDER BY $sort $type");
// Hier war ein definierung, welche einen Wert für die Tabellenfarben abfrage initialisiert
while($ds=mysql_fetch_array($ergebnis)) {
//Hier war ne IF Anweisung, welche jede zweite spalte die tabellenfarbe ändert
// Hier war ne IF Anweisung welche schaut ob der Wert von einem User ist oder von einem Gast und ggf. Details hinzuschreibt ( Homepage etc .. ) oder sie halt auslässt ( beim gast )
// Hier waren viele IF anweisungen um zu schauen wo man gerade war
//hier wurde nur die erkenntnis der abfrage per echo an den browser geleitet
// hier war ne inkrementierung des wertes, welcher die tabellenfarben bestimmt ( damit auch bei der zweiten abfrage ne andere genommen wird ... hätte man besser machen können ...
}
wie man sieht bestimmt hier garnix die ausgabe, oder fügt etwas hinzu.
unter _functions.php fand ich folgendes:
PHP:
// WHO IS - WAS ONLINE
$timeout=1; // 1 sekunde
$deltime = time()-($timeout*60); // IS 1m
$wasdeltime = time()-(60*60*24); // WAS 24h
safe_query("UPDATE ".PREFIX."user SET ip='$ip' WHERE userID='$userID'");
safe_query("DELETE FROM ".PREFIX."whoisonline WHERE time < '$deltime'"); // IS ONLINE
safe_query("DELETE FROM ".PREFIX."whowasonline WHERE time < '$wasdeltime'"); // WAS ONLINE
sprich alle 24h wird der wert dort ausgetragen, nun ist interresant, wo der wert eingetragen wird.
und etwas weiter unten:
PHP:
// WAS ONLINE
if(mysql_num_rows(safe_query("SELECT userID FROM ".PREFIX."whowasonline WHERE userID='$userID'")))
safe_query("UPDATE ".PREFIX."whowasonline SET time='".time()."', site='$site' WHERE userID='$userID'");
else safe_query("INSERT INTO ".PREFIX."whowasonline (time, userID, nickname, site) VALUES ('".time()."', '$userID', '".getnickname($userID)."', '$site')");
also sofern du mit der userid nicht binnen 24h drin warst wird hier dein MOMENTANER name hinzugefügt.
da man eine userid net mit umbennen ändert musst du warten bis 24h vorbei sind, dann kommt ein neuer eintrag mit dem richtigen namen
EDIT:
damit es nicht zu undeutlich ist. oben wird alles gelöscht, wo der wert time älter als umgerechnet 24h ist.
sollte er jedoch deine userid finden setzt er time auf das aktuelle datum.
also müsstetstr du 24h offline sein, damit er den wert erfolgreich löscht, ihn daher nicht mehr findet und es neu einträgt
EDIT2:
in 5min folgt ein script, welches sofort ALLE werte in whowasonline löscht
(falls gewünscht schreib es es so um, das er nur deinen löscht, aber es wäre egal, da die anderen gelöschten werte sonst vom script eh binnen 24h gelöscht werden
)
hier isses:
PHP:
<?php
require('_mysql.php');
mysql_connect($host,$user,$pwd);
mysql_select_db($db);
mysql_query('DELETE FROM cp3_whowasonline WHERE 1=1');
?>
einfach als datei mit endung .php erstellen, in den hauptordner packen, aufrufen und wennalles weiß bleibt und keine fehlermeldung kommt hab ich mich auch nicht verschrieben
( sonst findet er ggf die tabelle nicht oder sagt, das er nicht verbinden kann, also nix schlimmes
)