Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Dh-00

Finalizar um acesso ao banco de dados com o evento onUnload

Recommended Posts

Estou desenvolvendo uma aplicação e estou com alguns problemas:

1º - Não pode haver acesso simultâneo do mesmo usuário, assim o unico modo de controlar é registrar o acesso no banco de dados em uma tabela. O problema é que preciso "avisar" o sistema que o usuario saiu, existe um link que finaliza a sessão, ate ai ok, mas se o cara clica no "X" utilizando o evento onUnload eu chamo uma rotina que abre a página com os comandos de logoff e beleza. O problema é que este evento somente funciona no IE e não no firefox, ou seja, o ie permite que seja aberta uma nova janela antes de fechar a janela atual, o firefox não.

Assim para o sistema o usuario continua ativo.

 

2º - Ao apertar F5, é rodado o script de finalização, e é cortada a conexão do usuario.

 

Alguem já passou por isso?

 

valeu !

Compartilhar este post


Link para o post
Compartilhar em outros sites

onUnload nao existe em php....

o onUnload é um evento dentro da tag <body>

 

Pessoal, um dos problemas de finalizar a sessão quando o usuario sai da página (no ie e firefox) foi resolvido do seguinte modo:

 

<script language="javascript" type="text/javascript">

function finaliza()

{

var xmlHttp=false;

 

try {

xmlHttp = new XMLHttpRequest();

} catch (e1) {

try {

xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e2) {

xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");

}

}

 

xmlHttp.open("GET", "Finaliza.aspx", true);

xmlHttp.send(null);

}

</script>

 

<body onunload="finaliza();">

 

porem, o problema persiste, pois se o usuário mudar de página é registrado o fim da sessão, e a sessão também é fechada se o usuário aperta F5. Alguem ja conseguiu contornar esse problema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alô rapaziada, também tava procurando uma maneira de desenvolver meu sistema com essa funcionalidade e hoje http://forum.imasters.com.br/public/style_emoticons/default/grin.gif descobri a solução (pelo menos para o meu caso, hehehe).

 

A solução para a mudança de página voce resolve com AJAX, já que a requisicao é feita sem refresh de maneira assíncrona evitando assim a mudança de estado da página e com relação aos botões voltar e atualizar da barra de ferramentas do browser (o usuário insiste em usar) você desabilita eles com javascript dando opção pra que eles apenas possam fechar o browser pelo botão fechar da janela ou por algum outro que voce tenha criado dentro da página e pra finalizar a sessão você continua utilizando o evento onunload, pois, como toda a aplicação é carregada dentro de uma única página (Caso você utilize ajax para carregamento das páginas) o evento ira disparar o fechamento dessa página principal, que já contém todo o conteúdo e não das outras. Espero ter ajudado! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.