Foros del Web » Programando para Internet » PHP »

Mejor forma de sacar los usuarios logeado e invitados de una página

Estas en el tema de Mejor forma de sacar los usuarios logeado e invitados de una página en el foro de PHP en Foros del Web. Buenas, Saber cuántos usuarios registrados están logeados es fácil, porque tengo un campo en la tabla usuario que me indica si está online o no, ...
  #1 (permalink)  
Antiguo 23/09/2010, 06:24
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Mejor forma de sacar los usuarios logeado e invitados de una página

Buenas,

Saber cuántos usuarios registrados están logeados es fácil, porque tengo un campo en la tabla usuario que me indica si está online o no, y otro con su última visita, la cual voy actualizando también en cada recarga que hace el usuario a la página.
Aunque igual sería mejor dejar “lastvisit” como la fecha del ultimo login y “lastactivity” a la fecha de la última vez que recargó la página, mejor así? ¿Qué opináis?

El problema que tengo es para saber los usuarios que están viendo la página ahora mismo y no están logeados. ¿Cómo los identifico? Me baso en su IP? Para diferenciarlos? Y si hay dos usuarios que comparten IP y están al mismo tiempo conectados?
Guardo los datos de los no invitados también en una base de datos, mejor que un txt?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 23/09/2010, 07:12
Avatar de Heli0s  
Fecha de Ingreso: abril-2010
Mensajes: 789
Antigüedad: 14 años
Puntos: 40
Respuesta: Mejor forma de sacar los usuarios logeado e invitados de una página

Tu primera duda, sobre si usar lastvisit y lastactivity, bueno, eso es puramente a gustos, si te gusta tener toda la información detallada pues no hay problema en que cuando un usuario se logee guardes la fecha, y que aparte en cada recarga guardes esa otra fecha, eso es a tu gusto.

Sobre como identificar a los anonimos, la única forma es por IP, en cada recarga compruebas si ese usuario esta logeado, y lo guardas, lo puedes guardar con un simple numero, en un campo STATUS o algo asi, podrias usar 0 = anonimo, 1 = logeado, 2 = Admin, o moderador, o lo que tu quieras, asi sabes que tipo de usuario es con un simple número.

Si hay varias personas mirando tu página desde una misma conexion (bajo un router), no hay manera segura para saber que son dos personas, ya que usan la misma conexión y tienen la misma ip, lo unico que puedes hacer es comparar sistemas operativos entre las conexiones de una misma ip a ver si por casualidad cada ordenador tuviese uno diferente, pero para mi es una perdida de tiempo ya que eso no te va a garantizar nada, no veo posibilidad de diferenciar a varias personas desde una misma conexión pero tampoco es muy comun que dos hermanos o familiares visiten las mismas webs, así que tu número de usuarios anonimos no será muy inexacto.

Sobre donde guardarlo, en base de datos, ten en cuenta que esa información se va a estar comparando y actualizando en cada recarga, un txt es mas lento, y no se puede guardar cambios al mismo tiempo, como en la base de datos.

Un saludo
  #3 (permalink)  
Antiguo 23/09/2010, 07:24
Avatar de OsSk4R  
Fecha de Ingreso: octubre-2006
Ubicación: $this->home
Mensajes: 824
Antigüedad: 17 años, 6 meses
Puntos: 74
Respuesta: Mejor forma de sacar los usuarios logeado e invitados de una página

Buenas,

Tu mismo te has respondido....

Yo para los usuarios que estan viendo la página y no estan logueados, los controlaría por su IP y, sí, los guardaría en una BD antes que en un txt.

Aquí hay un manual que explica exactamente lo que quieres (para que reinventar nada).

Sobre si hay dos usuarios que comparten la misma IP y están al mismo tiempo conectados pues... sinceramente es algo no muy casual la verdad (o eso creo).

Pero bueno, hay que plantearse lo siguiente: ¿Si se diera el caso, la visita la contabilizarias como dos?, ¿o como una?.

Si la vas a contabilizar como una, pues lo tienes sencillo. Antes de insertar los datos en la base de datos, compruebas que esa IP del visitante no exista. Si existe, querrá decir que hay otro usuario visitando en ese mismo momento la página con esa IP, por tanto, no haces ese nuevo registro...

Y bien, si quieres contabilizar esas visitas como dos, pues también deberías de comprobar si esa IP existe o no. Si existe, pues en el contador de los usuarios que estan visitando la página, pues les sumas 1.


Como ves es una forma muy simple de hacerlo.

Saludos,
  #4 (permalink)  
Antiguo 23/09/2010, 09:05
 
Fecha de Ingreso: agosto-2009
Mensajes: 31
Antigüedad: 14 años, 8 meses
Puntos: 2
Respuesta: Mejor forma de sacar los usuarios logeado e invitados de una página

Hola, mi idea seria que en vez de guardar la ip guardes un SessionId o un hash que crees cuando creas la session, nunca vas a tener 2 hash iguales(practicamente), es mas eso lo podes guardar en una cookie y hasta podes llevar contabilidad de quienes vuelven a visitar tu pagina...
En fin las posibilidades son muchas, yo en lo personal vi como manejaba eso phpBB y me gusto la idea, asi que prefiiero usar un SessionId para reconocer a los usuarios...
Saludos!
  #5 (permalink)  
Antiguo 23/09/2010, 13:21
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 1 mes
Puntos: 20
Respuesta: Mejor forma de sacar los usuarios logeado e invitados de una página

Muchas gracias a todos por vuestras opiniones

Etiquetas: invitados, usuarios, mejoras, formulario
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 20:28.