Ciao.
Per darti un'idea.
	Codice PHP:
	
<?php
class UsersOnline 
{
    var $__DB;
    var $__timeoutSeconds;
    var $__numberOfUsers;
    function UsersOnline(&$db)
    {
        (is_object($db))?$this->__DB = &$db:exit('Could not connect');
        $this->__timeoutSeconds = 300;
        $this->__numberOfUsers = 0;
        $this->refresh(); 
    }
    function getNumber() 
    {
        return $this->__numberOfUsers;
    }
    function printNumber($singular,$plural) 
    { 
        if($this->getNumber() == 1) 
        {
               return $singular.$this->getNumber();
        }
        else
        {
            return $plural.$this->getNumber();
        }
    }
     function refresh() 
    {
        $currentTime = time();
        $timeout = $currentTime - $this->__timeoutSeconds;
        $ip = $_SERVER['REMOTE_ADDR'];
        $file = $_SERVER['PHP_SELF'];
        $query = "DELETE FROM _usersonline WHERE time < $timeout";
        $this->__DB->performQuery($query);
        $query = "INSERT INTO _usersonline (time,remote_ip,file) VALUES ('".$currentTime."','".$ip."','".$file."')";
        $this->__DB->performQuery($query);
         $query = "SELECT DISTINCT remote_ip FROM _usersonline WHERE file='".$file."'";
         $result = $this->__DB->performQuery($query);
        $this->__numberOfUsers = $result->getNumRows();
        
    }
    
}//
?>