Ver Mensaje Individual
  #2 (permalink)  
Antiguo 09/08/2004, 16:49
Avatar de living
living
 
Fecha de Ingreso: mayo-2004
Mensajes: 1.266
Antigüedad: 19 años, 10 meses
Puntos: 2
Yo saqué por ahí un script que sirve para saber cuantos usuarios activos hay en una página.Es este:

Código PHP:
<?
////////////////////////////////////////////
//USUARIOS ACTIVOS
//Calcula el numero de usuarios activos
////////////////////////////////////////////

function usuarios_activos()
{
   global 
$link;
   
//permitimos el uso de la variable portadora del numero ip en nuestra funcion
   
if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
       
$ip $_SERVER['HTTP_X_FORWARDED_FOR']; 
    } 
    elseif (isset(
$_SERVER['HTTP_VIA'])) { 
       
$ip $_SERVER['HTTP_VIA']; 
    } 
    else (isset(
$_SERVER['REMOTE_ADDR'])) { 
       
$ip $_SERVER['REMOTE_ADDR']; 
    } 
    
   
//definimos el momento actual
   
$ahora time();


   
//actualizamos la tabla
   //borrando los registros de las ip inactivas (10 minutos)
   
$limite $ahora-10*60;
   
$ssql "delete from activeUser where timestamp < ".$limite;
   
mysql_query($ssql,$link);

   
//miramos si el ip del visitante existe en nuestra tabla
   
$ssql "select ip, timestamp from activeUser where ip = '$ip'";
   
$result mysql_query($ssql,$link);

   
//si existe actualizamos el campo timestamp
   
if (mysql_num_rows($result) != 0$ssql "update activeUser set timestamp = ".$ahora." where ip = '$ip'";
   
//si no existe insertamos el registro correspondiente a la nueva sesion
   
else $ssql "insert into activeUser (ip, timestamp) values ('$ip', $ahora)";

   
//ejecutamos la sentencia sql
   
mysql_query($ssql,$link);

   
//calculamos el numero de sesiones
   
$ssql "select ip from activeUser";
   
$result mysql_query($ssql,$link);
   
$usuarios mysql_num_rows($result);

   
//liberamos memoria
   
mysql_free_result($result);

   
//devolvemos el resultado
   
return $usuarios;
}
?>
Esto serviría para todos los usuarios. la base de datos (en este caso activeUser) utiliza dos campos, uno es el ip y otro es timestamp. Podrías poner otro campo de tipo booleano que indicase si es usuario o no y en vez de guardar su ip guardas su nombre de usuario (que podrás sacar de la session o de la cookie dependiendo de como se guardan los datos del usuario cuando se loguea). En vez de ip pon de nombre al campo el término "usuario" porque así quedará más claro.

Es resumen:

compruebas si es usuario........si lo es guardas en la base de datos su nombre de usuario, el timestamp y pones a 1 (por ejemplo) el campo donde indicas que es usuario.
Si no lo es guardas la ip , el timestamp y pones a cero el otro campo. El resto ya lo hace el script.
__________________
¿Te apasiona el mundo del guión? El portal del guión