Ver Mensaje Individual
  #2 (permalink)  
Antiguo 10/05/2004, 10:29
Avatar de Reynier
Reynier
 
Fecha de Ingreso: noviembre-2002
Ubicación: Por ahí en algún sitio
Mensajes: 1.844
Antigüedad: 22 años
Puntos: 1
Yo uso esta clase

Yo uso esta clase y me va muy bien.
Código PHP:
<?php
class Online {
    var 
$host     'localhost';
    var 
$database 'marxismo';
    var 
$user     'root';
    var 
$password '';
    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->host$this->user$this->password) or die('Error conecting to database');
        
mysql_db_query($this->database,"INSERT INTO usuariosenlinea VALUES ('$currentTime','$REMOTE_ADDR','$PHP_SELF')") or die('Error escribiendo en la Base de Datos');
        
mysql_db_query($this->database,"DELETE FROM usuariosenlinea WHERE timestamp < $timeout") or die('Error borrando de la Base de Datos');
        
$result mysql_db_query($this->database,"SELECT DISTINCT ip FROM usuariosenlinea WHERE file='$PHP_SELF'") or die('Error leyendo de la Base de Datos database');
        
$this->numberOfUsers mysql_num_rows($result);
        
mysql_close();
    }
}
?>
debes crear una tabla en tu bd que se llame usuariosenlinea
Código PHP:
CREATE TABLE `usuariosenlinea` (
  `
timestampint(15NOT NULL default '0',
  `
ipvarchar(40NOT NULL default '',
  `
filevarchar(100NOT NULL default '',
  
KEY `timestamp` (`timestamp`),
  
KEY `ip` (`ip`),
  
KEY `file` (`file`)
TYPE=MyISAM COMMENT='Tabla para almacenar los usuarios en Línea'
para usarla es asi:
Código PHP:
 include("class.online.php"); 
 
$online = new Online();
 
$online->printNumber(); 
Salu2
__________________
Ing. Reynier Pérez Mira