suche User-online zählwerk...

ctac

Mitglied
Hallo Leute,
ich suche eine Elegante methode alle user die auf meiner
Seite gerade sind anzeigen zu lassen.

Soll auch nicht so schwer sein, aber ich habe irgendwie ein blackout..

10x


ps: cookie, session, *.txt-file ??? was????? ;-)
 
PHP:
<?php

/*
    UsersOnline ver 1.0.0
    Author: Daniel Kushner
    Email: daniel@websapp.com
    Release: 08 Nov 2001
    Copyright 2001

    Database table scheme:

    CREATE TABLE usersonline (
        timestamp int(15) DEFAULT '0' NOT NULL,
        ip varchar(40) NOT NULL,
        file varchar(100) NOT NULL,
        INDEX (timestamp),
        INDEX ip(ip),
        INDEX file(file)
       );

*/

class UsersOnline {

    /* public: connection parameters */
    var $host     = '';
    var $database = '';
    var $user     = '';
    var $password = '';

    var $timeoutSeconds = 120;
    var $numberOfUsers = 0;

    function UsersOnline() {
        $this->refresh();
    }

    function getNumber() {
        return $this->numberOfUsers;
    }

    function printNumber() {
        if($this->numberOfUsers == 1) {
            echo "$this->numberOfUsers User online";
        } else {
            echo "$this->numberOfUsers User online";
        }
    }

    function refresh() {
        global $REMOTE_ADDR, $PHP_SELF;

        $currentTime = time();
        $timeout = $currentTime - $this->timeoutSeconds;

        mysql_connect($this->host, $this->user, $this->password)
            or die('Error conecting to database');

        mysql_db_query($this->database,
                       "INSERT INTO usersonline VALUES ('$currentTime','$REMOTE_ADDR','$PHP_SELF')")
            or die('Error writing to database');

        mysql_db_query($this->database,
                       "DELETE FROM usersonline WHERE timestamp < $timeout")
            or die('Error deleting from database');

        $result = mysql_db_query($this->database,
                                 "SELECT DISTINCT ip FROM usersonline WHERE file='$PHP_SELF'")
            or die('Error reading from database');

        $this->numberOfUsers = mysql_num_rows($result);

        mysql_close();
    }

}

?>
Hoffe das hilft dir...
 
coool, danke!!!!!!

Es heisst also dass in 2 Minuten der user für tod erklärt wird, wenn er sich nicht bewegt....

OK, man kann schon diesen wert verändern....

Stimmt, bessere methode so weit ich verstehe kann es nicht
geben..


Cool

10x
:-)
 
Schön dass ist genau das was ich suche, aber wie um Himmelswillen, kann ich nun die Zahl ausgeben.

Habe die Tabelle erstellt und den Code in meine checkuser.php eingepfelgt. Dort werden die User auf vorhandene Logins überprüft.
Es soll nämlich nur die Zahl der User augegeben werden, die registriert sind und gerade online sind.

Nun will ich auf der Navigationspage ausgeben wieviele registrierte User gerade online sind. Aber wie???

Kleine Hilfestellung wäre echt nett, hab bisher noch keine erfahrungen mit der Einbindung von Classes.

schon mal 1000 thx

webber
 
Zuletzt bearbeitet:
Zurück