Foros del Web » Programando para Internet » PHP »

Listar usuarios logueados en linea, como hacerlo?

Estas en el tema de Listar usuarios logueados en linea, como hacerlo? en el foro de PHP en Foros del Web. Hola. Les hago una consulta. Tengo un sistemita de logueo, donde el usuario ingresa mediante un user y pass a una sección determinada del sitio. ...
  #1 (permalink)  
Antiguo 17/11/2006, 06:56
 
Fecha de Ingreso: mayo-2004
Ubicación: Argentina
Mensajes: 48
Antigüedad: 20 años, 5 meses
Puntos: 0
Listar usuarios logueados en linea, como hacerlo?

Hola.

Les hago una consulta. Tengo un sistemita de logueo, donde el usuario ingresa mediante un user y pass a una sección determinada del sitio.
Por otro lado, este sistemita tiene un admin para dar de alta y baja a los usuarios, como opción.

Funciona con una base de datos mysql.

Bueno, en realidad lo que quiero, es dentro de esa sección donde ingresa el usuario, listar los nombres de usuario, que se encuentran logueados en ese momento. La verdad no sé como hacerlo. Se me ocurrió que si un usuario genera una sesión al ingresar, es posible que el sistema liste todos los nombres de usuarios logueados. Pero si es así, como los listo en PHP?

Por ahí leí que se puede hacer con la base de datos, pero la tabla de logueo que tiene el sistemita es esta:

CREATE TABLE authuser (
id int(11) NOT NULL auto_increment,
uname varchar(25) NOT NULL default '', <- username
passwd varchar(32) NOT NULL default '', <- pass
team varchar(25) NOT NULL default '', <-nada importante
level int(4) NOT NULL default '0', <-nivel de usuario 1, 2, 3
status varchar(10) NOT NULL default '', <- estado activado/desactivado
lastlogin datetime default NULL, <-ultimo loguin 2003-04-04 10:59:36
logincount int(11) default NULL, <- nªveces que logueó
PRIMARY KEY (id)
) TYPE=MyISAM;

Creo que por mysql no se puede obtener quien esta activo, o al menos no se me ocurre con estos datos, ni aproximado.

Si alguien me puede dar una idea, agradecería. Capaz se puede hacer con sesiones.

Muchas gracias!
Martin
  #2 (permalink)  
Antiguo 17/11/2006, 22:59
 
Fecha de Ingreso: septiembre-2006
Mensajes: 41
Antigüedad: 18 años, 2 meses
Puntos: 1
yo lo q habia pensado era que al registrar una variable del usuario logeado, insertara un dato en una tabla, y al hacer logout, que lo borrara, pero es muy complicado y nada practico, si alguien sabe otra forma se los agradeceria mucho.
  #3 (permalink)  
Antiguo 18/11/2006, 10:01
Avatar de david_M_G  
Fecha de Ingreso: febrero-2005
Mensajes: 938
Antigüedad: 19 años, 9 meses
Puntos: 20
En realidad se hace que los usuarios ingresen y se cree una SESSION entre el cliente y el servidor. Para mostrar los usuarios activos, solo cabe mostrar la lista de SESSIONES establecidas. Yo personalmente no lo he hecho nunca.

Más información sobre las sessiones:
www.php.net/session
  #4 (permalink)  
Antiguo 18/11/2006, 10:24
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 10 meses
Puntos: 129
Cita:
Iniciado por david_M_G Ver Mensaje
En realidad se hace que los usuarios ingresen y se cree una SESSION entre el cliente y el servidor. Para mostrar los usuarios activos, solo cabe mostrar la lista de SESSIONES establecidas. Yo personalmente no lo he hecho nunca.

Más información sobre las sessiones:
www.php.net/session
Una sesión sólo o el uso de sesionse -sólo- no te servirá para ese propósito .. De hecho no tienes forma de ver las sesiones "creadas" ni los datos de todas las sesiones o alguna en forma individual desde otro cliente. Recuerda que las sesiones son -únicas- para el cliente que las crea .. ningún otro cliente puede ver las sesiones creadas por otros.

Por eso es necesario usar un médio "común" para almacenar la información de los usuarios que están activos y que tus scripts (lanzados a ejecutar por cualquier cliente) pueda acceder a esa información. Por ejemplo .. usa una Base de datos o lo que gustes ..

Un ejemplo práctico de esto sería:
http://www.forosdelweb.com/showpost....45&postcount=3

Si se fijan se trata de establecer la fecha/hora de ingreso de tu usuario y a cada iteracción con el servidor (ejecucución de tus scripts) actualizar el dato de esa fecha de "última actividad en el sistema" .. así tendrás que considerar un "margen de error" que será el tiempo que tu definas como que un usuario si no ha realizado una petición al servidor (una página pedida por el URL en un link .. o redireccionamiento, recarga de página, "submit" de un formulario .. etc), consideraras al usuario como ya no activo en tu sistema.

En el ejemplo suministrado se basa en la "IP" del cliente, .. perfectamente puedes sustituir ese dato por el usuario activo en tu sistema si le haces seguimiento por cookies o sesiones (en lugar de almacenar y trabajar con $_SERVER['REMOTE_ADDRR'] .. usarías tu variable de sesión o cookie que identifica al usuario activo en tu sistema: $_SESSION['id_usuario'] .. o lo que uses).

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #5 (permalink)  
Antiguo 18/11/2006, 11:58
 
Fecha de Ingreso: septiembre-2006
Mensajes: 41
Antigüedad: 18 años, 2 meses
Puntos: 1
ok lo intentare, al principio habia pensado en lo de las sesiones, pero cuando quise llevarlo a codigo, me di cuenta que no podia saber quienes estaban activos en ese momento solo por las sesiones, y ahi fue cuando investigue en el foro.

gracias, y a probar!!
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 21:44.