Ver Mensaje Individual
  #7 (permalink)  
Antiguo 30/10/2006, 13:08
daplp
 
Fecha de Ingreso: octubre-2006
Mensajes: 8
Antigüedad: 17 años, 6 meses
Puntos: 0
Acá esta la función...

function usuarios_conectados($id_usuario)
{
//usar ip
global $REMOTE_ADDR;

//sacamos la ip del visitante y el tiempo actual
$ip = $REMOTE_ADDR;
$ahora = time();

//conecto a la base de datos
$link = mysql_connect("direccion host","usuario","password");
//selecciono db
mysql_select_db("nombre bd",$link);

//actualizamos la base de datos y borramos las sesiones inactivas hace mas de x minutos
$limite = $ahora-x*60;
//actualizo la tabla usuarios_conectados de la base de datos
$ssql = "delete from usuarios_conectados where tiempo < ".$limite;
mysql_query($ssql,$link);

//miramos si el ID del visitante existe en nuestra tabla
$ssql = "select idusuario from usuarios_conectados where idusuario = '$id_usuario'";
$result = mysql_query($ssql,$link);

//si existe actualizamos el campo tiempo

$cant = mysql_num_rows($result);
if ($cant != 0) $ssql = "update usuarios_conectados SET tiempo = ".$ahora." where idusuario = '$id_usuario'";
//si no existe insertamos el registro correspondiente a la nueva sesion
else $ssql = "insert into usuarios_conectados (idusuario, tiempo, ip) values ('$id_usuario', '$ahora', '$ip')";
//ejecutamos la sentencia sql
mysql_query($ssql,$link);

//calculamos el numero de sesiones
$ssql = "select idusuario from usuarios_conectados";
$result = mysql_query($ssql);
$usuarios = mysql_num_rows($result);

//liberamos memoria
mysql_free_result($result);
mysql_close($link);
//devolvemos el resultado
return $usuarios;
}

la función (en este caso) la llamo $usuarios = usuarios_conectados(id_usuario) y me devuelve la cantidad de usuarios conectados...

La tabla usuarios_conectados en la bd tiene los siguientes campos...
*idusuario (INTEGER 15)
*tiempo (INTEGER 15)
*ip (VARCHAR 20)

Espero que sirva....Suerte...Daniel

Última edición por daplp; 30/10/2006 a las 13:19