![Antiguo](http://static.forosdelweb.com/fdwtheme/images/statusicon/post_old.gif)
30/10/2006, 13:08
|
| | Fecha de Ingreso: octubre-2006
Mensajes: 8
Antigüedad: 18 años, 3 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 |