Código PHP:
<?php
class Online {
var $server = "localhost";
var $database = "forosdediscusion";
var $userdb = "root";
var $passworddb = "triadpass";
var $timeoutSeconds = 120;
var $numberOfUsers = 0;
function Online() {
$this->refresh();
}
function getNumber() {
return $this->numberOfUsers;
}
function printNumber() {
if($this->numberOfUsers == 1) {
echo "$this->numberOfUsers usuario en línea";
} else {
echo "$this->numberOfUsers usuarios en línea";
}
}
function refresh() {
global $REMOTE_ADDR, $PHP_SELF;
$currentTime = time();
$timeout = $currentTime - $this->timeoutSeconds;
mysql_connect($this->server, $this->userdb, $this->passworddb) or die('Error conecting to database');
mysql_db_query($this->database,"INSERT INTO onlineusers VALUES ('$currentTime','$REMOTE_ADDR','$PHP_SELF')") or die('Error escribiendo en la Base de Datos');
mysql_db_query($this->database,"DELETE FROM onlineusers WHERE timestamp < $timeout") or die('Error borrando de la Base de Datos');
$result = mysql_db_query($this->database,"SELECT DISTINCT ip FROM onlineusers WHERE file='$PHP_SELF'") or die('Error leyendo de la Base de Datos');
$this->numberOfUsers = mysql_num_rows($result);
mysql_close();
}
}
?>
Cita:
pense en adicionar un campo iduser a la tabla esta y cuando ejecuto la consulta insertar el id de usuario que esta logeado en el sitio pero como se entonces la cantidad de invitados que tengo navegando y la cantidad de usuarios registrados.CREATE TABLE `onlineusers` (
`timestamp` int(15) NOT NULL default '0',
`ip` varchar(40) NOT NULL default '',
`file` varchar(100) NOT NULL default '',
KEY `timestamp` (`timestamp`),
KEY `ip` (`ip`),
KEY `file` (`file`)
) TYPE=MyISAM COMMENT='User Online';
`timestamp` int(15) NOT NULL default '0',
`ip` varchar(40) NOT NULL default '',
`file` varchar(100) NOT NULL default '',
KEY `timestamp` (`timestamp`),
KEY `ip` (`ip`),
KEY `file` (`file`)
) TYPE=MyISAM COMMENT='User Online';
Salu2