Registrar logout de usuario (DESESPERADO).

45 views
Skip to first unread message

Pablo Braulio

unread,
Jul 15, 2010, 4:43:08 AM7/15/10
to symfo...@googlegroups.com
Hola a todos.

Llevo unas semanas con este tema y no consigo solucionarlo, por lo os
pido ayuda (es un intento a la desesperada).

Esto viene como continuaci�n de mi mensaje mandado en enero.
http://groups.google.es/group/symfony-es/browse_thread/thread/7c9a4e6de71daed2

Tengo que implantar en un proyecto un sistema de "registro de accesos de
los usuarios". Se trata de registrar fecha y hora de entrada del usuario
y lo mismo para la salida del usuario. La complejidad radica en este
�ltimo punto, pues un usuario puede salir de la aplicaci�n de varios modos:

-Pulsando el boton "salir" dentro de la aplicaci�n.
-Introduciendo una nueva url en el navegador.
-Cerrando el navegador con Alt+F4 o X.
-Cerrando la pesta�a.

El primer modo (pulsando el bot�n "salir"), no es problema, pues ejecuto
una acci�n de logout que introduce los datos en la BD y listo. La
dificultad reside en el resto.

Buscando, he visto los eventos de Js onBeforeUnload y onUnload, pero su
problema es que no diferencian entre un refresco de la p�gina, una
navegaci�n dentro de la misma p�gina o un cierre de pesta�a o navegador.

Hab�a pensado en comprobar el dominio y si es el mismo que no ejecute
nada, pero no me funciona.

<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script language="javascript" >
function cerrar(){
var dominioOk= "localhost";
var dominioUrl= document.domain;
var salir= true;

if(dominioOk === dominioUrl ){
salir= false;
}

if(salir){
confirm('quieres salir');
}


}
</script>
</head>
<body onBeforeUnload="return cerrar()">
textooo
</body>
</html>

Lo que har�a el js es cambiar el valor de la variable "salir" en caso de
que el dominio sea el mismo. Eso funciona, pero al cerrarlo o cambiar la
url no hace nada.

Ya se que esto tiene poco que ver con Symfony y php (mis disculpas),
pero es muy probable que alguno se haya encontrado con esto en alguna
ocasi�n.

Muchas gracias y perd�n por el tost�n.
--
Saludos cordiales.
Pablo.

Jose Regalado

unread,
Jul 15, 2010, 9:25:38 AM7/15/10
to symfo...@googlegroups.com
Tiene que hacer un catch de eventos.
Un tab es un window.

<script language="JavaScript">
function doUnload(evt){ var e = (window.event) ? window.event : evt;
if (e.clientX < 0 && e.clientY < 0){{ alert("window closing....");}}
</script>
para lo del url, es algo parecido.

Solo Firef.

El 15/07/10, Pablo Braulio <bru...@gmail.com> escribió:


> Hola a todos.
>
> Llevo unas semanas con este tema y no consigo solucionarlo, por lo os
> pido ayuda (es un intento a la desesperada).
>

> Esto viene como continuación de mi mensaje mandado en enero.


> http://groups.google.es/group/symfony-es/browse_thread/thread/7c9a4e6de71daed2
>
> Tengo que implantar en un proyecto un sistema de "registro de accesos de
> los usuarios". Se trata de registrar fecha y hora de entrada del usuario
> y lo mismo para la salida del usuario. La complejidad radica en este

> último punto, pues un usuario puede salir de la aplicación de varios modos:
>
> -Pulsando el boton "salir" dentro de la aplicación.


> -Introduciendo una nueva url en el navegador.
> -Cerrando el navegador con Alt+F4 o X.

> -Cerrando la pestaña.
>
> El primer modo (pulsando el botón "salir"), no es problema, pues ejecuto
> una acción de logout que introduce los datos en la BD y listo. La


> dificultad reside en el resto.
>
> Buscando, he visto los eventos de Js onBeforeUnload y onUnload, pero su

> problema es que no diferencian entre un refresco de la página, una
> navegación dentro de la misma página o un cierre de pestaña o navegador.
>
> Había pensado en comprobar el dominio y si es el mismo que no ejecute


> nada, pero no me funciona.
>
> <html>
> <head>
> <title></title>
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
> <script language="javascript" >
> function cerrar(){
> var dominioOk= "localhost";
> var dominioUrl= document.domain;
> var salir= true;
>
> if(dominioOk === dominioUrl ){
> salir= false;
> }
>
> if(salir){
> confirm('quieres salir');
> }
>
>
> }
> </script>
> </head>
> <body onBeforeUnload="return cerrar()">
> textooo
> </body>
> </html>
>

> Lo que haría el js es cambiar el valor de la variable "salir" en caso de


> que el dominio sea el mismo. Eso funciona, pero al cerrarlo o cambiar la
> url no hace nada.
>
> Ya se que esto tiene poco que ver con Symfony y php (mis disculpas),
> pero es muy probable que alguno se haya encontrado con esto en alguna

> ocasión.
>
> Muchas gracias y perdón por el tostón.
> --
> Saludos cordiales.
> Pablo.
>
> --
> Has recibido este mensaje porque estás suscrito al grupo "symfony-es" de
> Grupos de Google.
> Para publicar una entrada en este grupo, envía un correo electrónico a
> symfo...@googlegroups.com.
> Para anular tu suscripción a este grupo, envía un correo electrónico a
> symfony-es+...@googlegroups.com
> Para tener acceso a más opciones, visita el grupo en
> http://groups.google.com/group/symfony-es?hl=es.
>
>


--
José Luis Regalado
bashman
Linux User nº 280381

Reply all
Reply to author
Forward
0 new messages