Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Sinedra en 7 Marzo 2011, 03:55



Título: Usuarios Online/Offline
Publicado por: Sinedra en 7 Marzo 2011, 03:55
Hola a todos, mi pregunta es la siguiente, como puedo determinar que usuarios estan online en mi web y como ir actualizando el script. No uso cookies, pero si obviamente sessions. se me ocurrio hacer un while que compare isset($_session[$id]) y recorra las id de todos los usuarios registrados y luego muestre los cuales la session exista. es correcto esto? se puede hacer asi o hay una mejor manera. Saludos!


Título: Re: Usuarios Online/Offline
Publicado por: Shell Root en 7 Marzo 2011, 03:59
Podrías agregar un campo a la base de datos, ESTADO, para generar una consulta fácilmente y mostrarlos.
Código
  1. SELECT Nombre, Apellido
  2.  FROM tblUsuarios
  3. WHERE (ESTADO = 1);


Título: Re: Usuarios Online/Offline
Publicado por: Feedeex en 7 Marzo 2011, 04:14
Podrías agregar un campo a la base de datos, ESTADO, para generar una consulta fácilmente y mostrarlos.
Código
  1. SELECT Nombre, Apellido
  2.  FROM tblUsuarios
  3. WHERE (ESTADO = 1);

Si. Estado cambiaría a Online en cuanto logea, pero si cierro el navegador desde la 'X' sin hacer logout quedaría Online siempre.
Encontré algo que puede servir de ayuda:

http://www.peoplecnc.com/blog/2007/11/19/php-como-desplegar-numero-de-usuarios-en-linea/


Título: Re: Usuarios Online/Offline
Publicado por: Marot77 en 7 Marzo 2011, 04:40
Algun administrador que te ayude hacer lo de cuando le des a la "X" ponga modo offline no siempre modo online,creo qu sería la manera más facil de encontrar la solucion.


Título: Re: Usuarios Online/Offline
Publicado por: Castg! en 7 Marzo 2011, 05:00
Método unload: http://www.w3schools.com/jquery/event_unload.asp
Al cerrar el navegador, conectas a una página externa que se encargue de poner al usuario offline. El problema entra en que si tengo 3 pestañas abiertas y cierro una, qedaría offline. Para eso, en cada pagina de tu web, tendrías que agregar algún timer en JS que se encargue de refrescar el estado (si se está offline, ponga online; si se esta online, no hace nada; si se está online con inactividad de x tiempo, inactivo).

Otros datos interesantes:
  • http://jquery.com/ (http://jquery.com/)
  • http://es.wikipedia.org/wiki/AJAX (http://es.wikipedia.org/wiki/AJAX)
  • http://api.jquery.com/jQuery.ajax/ (http://api.jquery.com/jQuery.ajax/)


Título: Re: Usuarios Online/Offline
Publicado por: .mokk. en 7 Marzo 2011, 09:26
Tambien podrias hacerlo por tiempo.


Título: Re: Usuarios Online/Offline
Publicado por: Castg! en 7 Marzo 2011, 16:45
Citar
si se está online con inactividad de x tiempo, inactivo).
Te referis a eso? o que expire el tiempo del estado conectado..?


Título: Re: Usuarios Online/Offline
Publicado por: bomba1990 en 7 Marzo 2011, 16:49
puedes hacer que en la bd insertas la fecha y la hora y revisas cual es la diferencia de tiempo? si lleva mas de 5 min sin actividad lo pones ofline.


Título: Re: Usuarios Online/Offline
Publicado por: Castg! en 7 Marzo 2011, 17:26
O sino, tener un temporizador en javascript de x tiempo, que al finalizar, ponga el usuario como inactivo. Ahora, si hay actividad (mover el mouse en toda la página, escribir en algun campo de texto, etc.) reiniciar este temporizador... Se entiende?

Como veras, tenes distintas formas y parámetros de hacerlo. Por mi parte yo te recomiendo tener 3 estados: Conectado, Desconectado, Inactivo...


Título: Re: Usuarios Online/Offline
Publicado por: Shell Root en 7 Marzo 2011, 17:57
@Feedeex, pues miralo como el foro. Cierra el navegador y verás que no se desconecta. Podrías hacerlo con COOKIES y darles un limite de tiempo.


Título: Re: Usuarios Online/Offline
Publicado por: Sinedra en 10 Marzo 2011, 01:50
bueno gracias por las respuestas, seguire alguna de sus recomendaciones, saludos!