Procedimientos

Bueno, a ver si me explico, estoy creando una página de contactos, con un mensajero, en el que aparecen mis contactos, y si están conectados o no. Esto lo consigo con el campo "conectado" de la tabla usuarios, al conectarse el usuario, pongo el campo(numérico) en valor 1, y al desconectarse en 0. El problema viene cuando el usuario cierra la página sin desconectarse. He probado a usar el evento Onunload, hago que se abra una ventana en la cual tengo un comando update que deja el valor del campo en 0, para después cerrarse automáticamente, funciona, Pero si el usuario tiene instalado un programa antipopups, le bloquea esta ventana, con lo que no se desconecta el usuario. He pensado en crear una función o procedimiento al que llamar cuando se cierre la página, o un archivo DLL, la verdad es que no se como hacerlo, incluso en cambiar todo el sistema y hacer que la aplicación sepa quien esta conectado y quien no, no se... En principio quisiera que alguien me explique como crear un procedimiento o función que altere el valor de ese campo, y como llamarlo desde javascript al cerrar la página, o lo que sea.. Os agradeceré cualquier sugerencia. Muchas gracias por adelantado

1 Respuesta

Respuesta
1
Usar application funcionaria, pero comería demasiados recursos si hubiera mucha gente conectada.
Una solución seria un script de javascript con su origen en otro fichero '.asp'. Haber si me explico.
Desde el unload como tu decías puedes llamar a una función javascript que tengas en esa asp, y mediante una variable de session con el idusuario hacer un update de esa .ASP.
Seria algo así:
-En tu <HEAD> pones la declaración el origen del javascript:
========================================
<script type="text/javascript" src="http://www.tusite.com/scriptlogout.asp"></script>
========================================
-Creas una Session al logarse el usuario con el ID o lo que quieras (también puedes pasar ese ID a la función que pondrás en el fichero scriptlogout.asp)
-llamas a la funcion des de el unload del body de tu pagina:
=================================
onunload="logout()"
=================================
-Fichero scriptlogout.asp
=================================
function scriptlogout(){
<%
'codigo de tu update en base de datos usando la variable de session de usuario
%>
}
=================================
Lo he hecho así por encima pero supongo que funcionaria.
GRacias, me ha ayudado mucho tu respuesta, al menos me pone e camino y ya me puedo poner a trabajar. Me queda una dudilla para la que pedide aclaración a través de la sección pedir aclaración, pare aun solo con esto ya me podría poner a trabajar. Mechas gracias de nuevo, de verdad

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas