Foros del Web » Programando para Internet » PHP »

Cerrar Sesión por desconexión

Estas en el tema de Cerrar Sesión por desconexión en el foro de PHP en Foros del Web. Bueno antes de empezar quiero agredeceles ya que la página qeu estoy construyendo de a poquitos le corrijo los detalles y otros temas de gran ...
  #1 (permalink)  
Antiguo 25/05/2005, 19:43
Avatar de Jorgemen  
Fecha de Ingreso: mayo-2005
Ubicación: Perú
Mensajes: 322
Antigüedad: 12 años, 7 meses
Puntos: 1
Pregunta Cerrar Sesión por desconexión

Bueno antes de empezar quiero agredeceles ya que la página qeu estoy construyendo de a poquitos le corrijo los detalles y otros temas de gran importancia para mi gracias a uds. y bueno ahora tengo la 3era duda de mi lista de 6 jaja ojala no se aumenten:
en uno de mis script cuando un Usuario Registrado a mi web inicia sesion le cambio el atributo "estado" de mi tabla usuarioRegistrado de desconectado a conectado, cuando el Usuario Registrado cierra su sesion, cambia el "estado" de conectado a desconectado, el problema que veo es que pasa si cuando el Usuario Registrado esta navengando en mi web, de pronto se reinicia el computador, o le da click en cerrar ventana sin antes haber cerrado su sesion, u otros casos que no se me ocurren, el "estado" de este usuario en mi tabla usuarioRegistrado, se quedará como conectado, como puedo hacer para solucionar este problema?
  #2 (permalink)  
Antiguo 25/05/2005, 20:16
 
Fecha de Ingreso: marzo-2002
Ubicación: Salta Capital - Actualmente estudiando en Córdoba
Mensajes: 430
Antigüedad: 15 años, 8 meses
Puntos: 0
Yo a eso lo solucionaria, sin usar base de datos, manejandome simplemente con sessiones del servidor y verificando con los datos de la base datos, con lo cual el estado conectado o desconectado quedaria obsoleto.
Revisa las faq's ahi esta como hacer una simple autenticacion de usuarios, usando sessiones y comparando con la base de datos.
__________________
Nada es imposible, con un poco de esfuerzo se logran las cosas.-
  #3 (permalink)  
Antiguo 25/05/2005, 20:57
Avatar de Jorgemen  
Fecha de Ingreso: mayo-2005
Ubicación: Perú
Mensajes: 322
Antigüedad: 12 años, 7 meses
Puntos: 1
el estado conectado o no me sirve para otros scripts más importantes y es necesario usar una tabla, ya que otro usuario tiene qeu ver el estado de un determinado usuario y según sea tomar acciones: entonces mi mensaje sigue siendo:
----------------------------------------------------------------------------------
en uno de mis script cuando un Usuario Registrado a mi web inicia sesion le cambio el atributo "estado" de mi tabla usuarioRegistrado de desconectado a conectado, cuando el Usuario Registrado cierra su sesion, cambia el "estado" de conectado a desconectado, el problema que veo es que pasa si cuando el Usuario Registrado esta navengando en mi web, de pronto se reinicia el computador, o le da click en cerrar ventana sin antes haber cerrado su sesion, u otros casos que no se me ocurren, el "estado" de este usuario en mi tabla usuarioRegistrado, se quedará como conectado, como puedo hacer para solucionar este problema?
-----------------------------------------------------------------------------------
como soluciono el problema en base a lo que describo?
  #4 (permalink)  
Antiguo 26/05/2005, 10:09
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
En lugar de usar un "flag" como lo haces ahora para determinar su estado activo o inactivo .. debes usar fechas (con hora) para registrar:

1) Cuando ingresa el usuario al sistema (hace su login)
2) Cuando mueve una página/script de tu sitio .. Ahí actualizas ese campo de fecha a cada petición de una página de tu sitio/script.

De esa forma .. ya que PHP funciona bajo "petición" .. es decir, tu le pides y el te devuelve lo que resulte de su ejecución .. hasta que no "pides" (redireccionas, linkeas .. etc) un script de tu aplicación .. PHP "no sabe" si el usuario sigue ahí o bien cerró su navegador .. o apagó su PC ...

Bajo este concepto .. tienes un "problema" o "margen de error" que debes considerar. Se trata del "tiempo de inactividad" (por llamarlo así) que determinarás tu si entre la última iteracción con tu sistema y ahora (cuando tengas que ver la disponibiliad de ese usaurio) ha trasncurrido N tiempo .. consideraras como que salió del sistema (y no por la "puerta").

Para "ajustar" mejor ese margen de error .. puedes hacer algunas cosas:
1) Recargar algún frame (oculto) o petición vía "Remote Scripting" o "Ajax" de un script tuyo que actualice esa fecha de "sigo aquí conectado".
2) en función del intervalo de peticiones/recarga de ese script de actualización de dicha fecha .. podrás reducir el margen de error (el N tiempo que consideras como "ya no está en el sistema ..)

Parte de toda esta teoría la tienes implementada en los scripts denominados "usuarios activos" que veras en el foro ejemplos ..

Un saludo,
  #5 (permalink)  
Antiguo 27/05/2005, 15:48
Avatar de Jorgemen  
Fecha de Ingreso: mayo-2005
Ubicación: Perú
Mensajes: 322
Antigüedad: 12 años, 7 meses
Puntos: 1
en lo que me dices que sucede si alguien inicia sesion y de inmediato cierra la pagina? habrá dejado el contador corriendo, y como, creo que php al cerrarse una ventana lo considerá terminado el script como mi script podrá acualizarse para ver si el contador ya paso por ejemplo 10 min y así cerrar sesion?.
donde encuentro más ejemplos como el de "usuarios activos" ?? o sobre desconexiones o cierres de sesión por desconexión? o documentación básica sobre ello? gracias por la respuesta.
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:34.