Foros del Web » Programando para Internet » PHP »

¿ Como saber los usuarios registrados que estan conectados en la web ?

Estas en el tema de ¿ Como saber los usuarios registrados que estan conectados en la web ? en el foro de PHP en Foros del Web. Hola! Tengo que implementar un sistema en una web para saber en todo momento que usuarios registrados estan conectados. El propietario de la web tiene ...
  #1 (permalink)  
Antiguo 02/03/2011, 10:58
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años, 1 mes
Puntos: 18
¿ Como saber los usuarios registrados que estan conectados en la web ?

Hola!

Tengo que implementar un sistema en una web para saber en todo momento que usuarios registrados estan conectados.

El propietario de la web tiene un panel de gestión (todo realizado a medida por mi con php, etc.) desde el cual puede saber cuantos usuarios están registrados, etc. pero me ha pedido que desearía saber cuales de esos usuarios estan conectados en un momento dado en la web.

¿ Cual sería la mejor forma de desarrollarlo ?

Saludos.
  #2 (permalink)  
Antiguo 02/03/2011, 11:13
Avatar de s00rk  
Fecha de Ingreso: octubre-2010
Ubicación: Mexico
Mensajes: 238
Antigüedad: 14 años
Puntos: 48
Respuesta: ¿ Como saber los usuarios registrados que estan conectados en la web ?

Bueno aqui te dejo un codigo que yo utilizo, espero te sirva

Código PHP:
Ver original
  1. <? $usuario = $_SESSION['Usuario'];
  2.    //definimos el momento actual
  3.    $ahora = time();
  4.  
  5.    //conectamos a la base de datos
  6.    //Usad vuestros propios parametros!!
  7.    $conn = mysql_connect($host,$user,$password);
  8.    mysql_select_db($db,$conn);
  9.  
  10.    //actualizamos la tabla
  11.    //borrando los registros de las ip inactivas (24 minutos)
  12.    $limite = $ahora-24*60;
  13.    $ssql = "delete from Usuarios where fecha < ".$limite;
  14.    mysql_query($ssql);
  15.  
  16.    //miramos si el ip del visitante existe en nuestra tabla
  17.    $ssql = "select usuario, fecha from Usuarios where Usuario = '$usuario'";
  18.    $result = mysql_query($ssql);
  19.  
  20.    //si existe actualizamos el campo fecha
  21.    if (mysql_num_rows($result) != 0) $ssql = "update Usuarios set fecha = ".$ahora." where Usuario = '$usuario'";
  22.    //si no existe insertamos el registro correspondiente a la nueva sesion
  23.    else $ssql = "insert into Usuarios (Usuario, fecha) values ('$usuario', $ahora)";
  24.  
  25.    //ejecutamos la sentencia sql
  26.    mysql_query($ssql);
  27.  
  28.    //calculamos el numero de sesiones
  29.    $ssql = "select * from Usuarios";
  30.    $result = mysql_query($ssql);
  31.    
  32.    //Obtenemos los usuarios conectados
  33.    while($r = mysql_fetch_assoc($result)){
  34.        echo $r['Usuario']."<br>";
  35.    }
  36.  
  37.    //liberamos memoria
  38.    mysql_free_result($result);
  39.    ?>
  #3 (permalink)  
Antiguo 02/03/2011, 11:35
Avatar de gVenom  
Fecha de Ingreso: julio-2008
Ubicación: Costa Rica
Mensajes: 1.458
Antigüedad: 16 años, 4 meses
Puntos: 53
Respuesta: ¿ Como saber los usuarios registrados que estan conectados en la web ?

Cita:
$online_users = obtain_users_online(); //Obtiene los usuarios Online
obtain_users_online_string($online_users); // Retorna un string formateado para visualizar los usuarios
$guests_online = obtain_guest_count(); //Obtiene la cantidad de usuarios invitados (no-registrados) online
por Mandrake88
__________________
"Al que venciere y guardare mis obras hasta el fin, yo le daré autoridad sobre las naciones."
Apocalipsis 2: 26
Servicios para Pymes http://dst.co.cr
  #4 (permalink)  
Antiguo 02/03/2011, 14:51
 
Fecha de Ingreso: octubre-2003
Ubicación: España
Mensajes: 1.067
Antigüedad: 21 años, 1 mes
Puntos: 18
Respuesta: ¿ Como saber los usuarios registrados que estan conectados en la web ?

ok probaré a ver k tal.

por cierto, s00rk, ¿ este código se debería ejecutar cada X tiempo no?, ¿ como hacerlo ?, ¿ refrescando la página cada x minutos ?

Gracias!


Etiquetas: conectados, registrados, usuarios
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:59.