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();
}
}//
?>