Foros del Web » Programando para Internet » PHP »

Eventos de Session - Usuarios Activos

Estas en el tema de Eventos de Session - Usuarios Activos en el foro de PHP en Foros del Web. Buenas: Queria saber como puedo en PHP obtener los usuarios activos en la aplicacion web. Obviamente comienzo con un session_start y luego dentro de un ...
  #1 (permalink)  
Antiguo 08/10/2005, 09:37
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Eventos de Session - Usuarios Activos

Buenas:

Queria saber como puedo en PHP obtener los usuarios activos en la aplicacion web. Obviamente comienzo con un session_start y luego dentro de un arreglo global pongo el usuario que se conecto si no existe ya. Pero mi duda es como puedo capturar el evento de fin de session (por si el usuario mata el browser) para eliminarlo de mi array de usuarios activos????

Esto, cuando era muy ignorante y trabajaba con ASP lo hacia en el global.asa en el evento OnSession_End.

En apache con PHP como lo puedo hacer?

Muchas Gracias por el tiempo.
__________________
Keep it simple and keep it fast.
  #2 (permalink)  
Antiguo 11/10/2005, 13:12
 
Fecha de Ingreso: octubre-2005
Mensajes: 365
Antigüedad: 12 años, 2 meses
Puntos: 0
Sabes que en alguna ocasión yo pregunté algo similar (Porque yo también vengo del asp), y la respuesta es que no se puede hacer de la misma forma al menos porque Con Apache + Mysql no existen esos "Objetos de Sesión Personalizados" que se pueden configurar en el global.asa

La única opcion de capturar la salida es cuando ejecutan el Link de "Logout", entonces ahí puedes insertar en tu BD al logout del usuario, etc.


Si existe la Forma Similar de hacerlo a como se hace en ASP estoy igualemnte ávido de saberlo


Saludos.
  #3 (permalink)  
Antiguo 12/10/2005, 05:33
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Por lo que pude leer hasta ahora tambien puedes usar el evento unload del body y ahi llamar a algun php para realizar la tarea contra la DB..... Eso te ayuda por si el usuario cierra el browser en vez de hacer un Logout...... Pero no si el usuario mata el browser
__________________
Keep it simple and keep it fast.
  #4 (permalink)  
Antiguo 12/10/2005, 05:56
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En PHP no existe el "global.asa" soportado directamente por PHP (y funciones/funcionalidades de este).

Para llevar el control de tus usuarios activos .. las sesiones de PHP en sí no te podrán ayudar, sólo para lo que lo usas actualmente: temas de autentificación/validación/seguimiento de tu usuario (individual) o propagar variables en general en esa sesión.

Los usuarios activos en este caso .. lo que se suele hacer no es capturar eventos que sucedan en el cliente como un "unLoad" o similares .. los cuales pueden simplemente no suceder (ejemplo: un navegador sin javascript activo .. o un script PHP que realmente no pasa por tu navegador para su ejecución ..), en estos casos se considera un tiempo máximo de "inactividad" de tu usuario; entendiendose como "actividad" al hecho de que tu usuario va pidiendo páginas a tu aplicación .. haciendo links, enviando formularios, recargando página .. etc. Ahí es donde tu puedes ir actualizando tus BD con la fecha última de interacción con el sistema y compararla con la que tu consideres como "inactividad" (o "se fué del sistema sin salir por tu "logout").

Como veras el cálculo no es 100% fiel .. pero todo depende del tiempo que tu consideres como "inactivo" así será tu margen de error.

Puedes combinar esto con los enventos javascript mencionados .. pero no fiarte 100% en que los eventos javscript que suceden en el "cliente" vayan a disparar tu script PHP de proceso.

Algunos ejemplos (usando archivos de texto plano o BD Mysql):
http://www.maestrosdelweb.com/editor...ulo.php?phpusr
http://www.desarrolloweb.com/articulos/615.php?manual=6

Ahí como veras usan para identificar al usuario su "IP" .. pero si tu usuas ya tu sistema de usuarios .. usa tus "ID's" de tus usuarios que ya tienes autentificados.

Un saludo,
  #5 (permalink)  
Antiguo 13/10/2005, 13:33
 
Fecha de Ingreso: febrero-2004
Ubicación: España. Madrid
Mensajes: 454
Antigüedad: 13 años, 9 meses
Puntos: 0
gracias por los links.

saludos
  #6 (permalink)  
Antiguo 13/10/2005, 16:06
Avatar de Viet  
Fecha de Ingreso: octubre-2003
Ubicación: Mar del Plata - Argentina
Mensajes: 247
Antigüedad: 14 años, 2 meses
Puntos: 2
Gracias Cluster
__________________
Keep it simple and keep it fast.
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 02:15.