PHP - En algún imprevisto ¿cerrar sesión del usuario?

   
Vista:

En algún imprevisto ¿cerrar sesión del usuario?

Publicado por Damian (62 intervenciones) el 28/10/2014 15:01:34
Hola estoy terminando de realizar una página en donde se trabaja con usuarios y por ende se usan sesiones. Dichas sesiones se cierran cuando el usuario abandona la página (haciendo click en un botón), pero en el medio pueden pasar muchas cosas; que la sesión este abierta y cierre el navegador, cambie de página, aprete en el botón atrás del navegador, refresque la página, etc.
¿Que me conviene hacer en esos casos? Yo pienso en cerrarle su sesión. Ahora ¿Cómo logro cerrar la sesión cuando suceden todos esos "eventos"? Seguro que se hace desde JavaScript, pero las sesiones las debo cerrar con php.
Si tienen algún código de cómo capturar esos eventos y luego desde php cerrar la sesión se los agradecería.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve

En algún imprevisto ¿cerrar sesión del usuario?

Publicado por xve (5523 intervenciones) el 28/10/2014 16:18:04
Hola Damian, la verdad es que no conozco manera de detectar si un usuario abandona la pagina...

La única manera que se me ocurre, es ir haciendo peticiones por ajax al servidor. En el momento que no se reciban peticiones, eliminar la sesión... pero esto te puede generar mucho tráfico dependiendo de los usuarios que se conecten.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de ruben

En algún imprevisto ¿cerrar sesión del usuario?

Publicado por ruben (25 intervenciones) el 28/10/2014 20:46:42
Podria ser que le disminuyas el tiempo que dura viva la session..
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

En algún imprevisto ¿cerrar sesión del usuario?

Publicado por Damian (62 intervenciones) el 29/10/2014 13:34:10
Entiendo lo que me dicen. Pero para el caso de reducir el tiempo, es muy relativo. ¿Cómo saber o controlar cuanto tiempo puede estar el usuario en la página?
Encima la página trata de un juego de preguntas y respuestas. Es un juego, dónde se le presenta una pregunta con distintas opciones dónde debe seleccionar una y apretar en "responder". pero si cierra el navegador o cualquier otra cosa distinta ajena al juego, no sabría que realizar. Por eso prefiero cerrarle la sesión y si quiere volver a jugar debería loguearse nuevamente.
Además al loguearse inserto un registro en la BD cómo que está activo (para que no inicie sesión más de una vez) y si cierra el navegador ese activo va a seguir en la BD; por lo que si al otro día por ejemplo quiero volver a jugar (inicia sesión) no lo va a poder hacer, por qué ese activo de la BD va a creer que ya hay alguien con ese usuario jugando.

Quizás debería hacer lo de que expire la session como me dice ruben pero también tendría que eliminar ese activo de la BD. No me convence mucho pero parece ser lo mejor.

Cuál era el código para que la sesion expire en un tiempo determinado y también saber cuando llega ese tiempo para borrar de la BD el activo. También me gustaría saber cuanto tiempo debería poner, cuál es lo normal.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar