Einmal hier:
http://www.phpwelt.de/freescripts/scripts.php?fsuf=ON
Oder selber schreiben!
Mit diesem einfachen Beispiel stellen Sie fest, wie viele User sich gerade auf Ihren Seiten befinden. Deses Beispiel erkennt den User anhand seiner IP-Adresse. In de Hauptfunktion user_online können Sie Ihre Einstellungen vornehmen.
Da man nie 100% sagen kann, dass der User immer noch auf Ihrer Seite ist, geht man davon aus, dass der User jede 5 Minuten (300 Sekunden) mind. eine Seite Aufruft.
Nun zur Installation: zu Anfang legen Sie bitte eine MySQL-Tabelle an:
PHP-Code:
CREATE TABLE user_online (
ip char(15) NOT NULL,
expire int(10) unsigned DEFAULT '0' NOT NULL,
KEY ip (ip)
);
Und das hier ist die Funktion, die das System steuert:
PHP-Code:
<?php
function user_online() {
// Einstellungen
$HOST = "localhost";
$ID = "root";
$PW = "";
$DB = "test";
$tabelle = "user_online";
$zeitspanne = 600; // in Sekunden
$REMOTE_ADDR = getenv("REMOTE_ADDR");
// MySQL Connect
$conn_id = mysql_connect($HOST,$ID,$PW);
mysql_select_db($DB,$conn_id);
// Löscht alte Einträge
mysql_query("DELETE FROM ".$tabelle." WHERE expire < ".time()."");
// Versucht einen Datensatz zu ändern
mysql_query("UPDATE ".$tabelle." SET expire = '".(time()+$zeitspanne)."' WHERE ip='".$REMOTE_ADDR."'");
// Bei Mißerfolg wird ein neuer Datensatz eingefügt
if(!mysql_affected_rows()) {
mysql_query("INSERT INTO ".$tabelle." (ip,expire) VALUES ('$REMOTE_ADDR','".(time()+$zeitspanne)."')");
}
// Ermittelt aktive User
$result = mysql_query("SELECT count(*) FROM ".$tabelle);
return mysql_result($result,0);
}
// Aufruf der Funktion
echo user_online();
?>