Foros del Web » Programando para Internet » PHP »

Lista de usuarios navegando en un foro

Estas en el tema de Lista de usuarios navegando en un foro en el foro de PHP en Foros del Web. Buenas. Vereis estoy puliendo un foro que me he hecho y una de las cosas que me gustaria añadirle es un recuadro en el que ...
  #1 (permalink)  
Antiguo 27/03/2011, 14:44
 
Fecha de Ingreso: mayo-2008
Ubicación: España
Mensajes: 130
Antigüedad: 16 años
Puntos: 3
Lista de usuarios navegando en un foro

Buenas. Vereis estoy puliendo un foro que me he hecho y una de las cosas que me gustaria añadirle es un recuadro en el que saliera una lista de usuarios que estan navegando por los foros, y cuando se entra en un foro especifico, lo mismo pero con los usuarios que estan viendo el respectivo foro.

Tengo una leve idea pero me gustaria que alguien me orientara un poco. Gracias de antemano.
  #2 (permalink)  
Antiguo 27/03/2011, 17:21
Avatar de Parzival  
Fecha de Ingreso: junio-2004
Ubicación: Vive en el foro
Mensajes: 190
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: Lista de usuarios navegando en un foro

Yo lo que haría es guardar en una nueva tabla de la base de datos la última sección (o subforo) visitado por el usuario y el momento de hacerlo.

Así, por ejemplo, si un usuario entra en el subforo "Noticias" lo guardas en esa tabla (formato similar a: índice del usuario, índice del subforo, timestamp actual).

A la hora de listar en la página, sólo toma en cuenta a los usuarios que tengan un timestamp mayor al timestamp actual - 900 (esto serían 15 minutos de inactividad).
  #3 (permalink)  
Antiguo 27/03/2011, 21:57
 
Fecha de Ingreso: noviembre-2005
Mensajes: 426
Antigüedad: 18 años, 5 meses
Puntos: 87
Respuesta: Lista de usuarios navegando en un foro

Grabar en una tabla creo recargaria mucho; yo creo que lo mejor seria guardar la lista de usuarios en un archivo XML, TXT o json; guardando el ID del usuario (o nickname si es UNICO) y la timesptam (hora de la ultima actividad) y cada vez que un usuario hace algo se guarda en este archivo con la timestamp; y todos aquellos que tenga una timestmap (hora de ultima actividad) mas antigua que 15 minutos son borrados.
  #4 (permalink)  
Antiguo 27/03/2011, 23:19
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años
Puntos: 1517
Respuesta: Lista de usuarios navegando en un foro

Yo voto por hacerlo con una base de datos, por cuestion de consultas más rapidas, en caso de usar archivos las funciones o metodos tienden a leer todo el archivo antes de mostar el resultado. Aunque aplicaciones y registros pequeños no veo ningún problema en usarlo.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 28/03/2011, 04:06
 
Fecha de Ingreso: mayo-2008
Ubicación: España
Mensajes: 130
Antigüedad: 16 años
Puntos: 3
Respuesta: Lista de usuarios navegando en un foro

Muchas gracias. Mas o menos tenia en mente hacerlo como ha descrito Parzival. Veo que 2 coincidis en que 15 mins de inactividad es el tiempo apropiado para no incluir a dicho usuario, por lo que pondré dicho tiempo.

De momento, descarto el hacerlo con ficheros, probare primero a usar la base de datos para ello. Un saludo y gracias.
  #6 (permalink)  
Antiguo 28/03/2011, 13:22
Avatar de Parzival  
Fecha de Ingreso: junio-2004
Ubicación: Vive en el foro
Mensajes: 190
Antigüedad: 19 años, 10 meses
Puntos: 2
Respuesta: Lista de usuarios navegando en un foro

El acceso a ficheros es más lento y no tienes la opción de filtrar tan cómodamente como lo podrías hacer con una tabla (un simple SELECT * FROM `tabla` WHERE tiempo < time() - 900). Además de tener que crear una estructura definida para ello, y en caso de añadir un nuevo registro (por ejemplo, la última página visitada, para ver qué está haciendo el usuario, o cosas así) es más complicado.

Lo de los 15 minutos es más o menos orientativo. Dependiendo de la actividad de tu página web puede ser más o menos (si es un blog con noticias largas recomiendo algo más, en cambio si es una web como Twitter, en la que actualizas cada pocos segundos (aunque sea por AJAX) con 5 minutos estaría bien).

Etiquetas: lista, usuarios, foros
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 11:11.