Ir para conteúdo

Arquivado

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

Electronic

Como saber se usuário terminou sessão?

Recommended Posts

Olá pessoal,

 

Estou com a seguinte dúvida:

No meu sistema, o usúario de nivel superior deve saber quem esta online.

 

então eu fiz assim:

na tabela de usuários tem um campo de status que se refere a estar ou nao logado no sistema,

assim que o usúario entra, além de criar sua sessão no PHP, faz o update e o status dele que torna-se online, dessa forma eu consigo selecionar na tabela os usuários que estão online.

 

Quando o usuário clica em sair faz a mesma coisa, mas ao contrário (encerra sessão e atualiza campo para offline). Mas o problema é que se o usuário sair do sistema fechando o navegador, ele encerra sua sessão no PHP, mas não ha como mudar o status dele na tabela, assim o sistema mostrará ao super usuário que o tal usuário está online mas nas verdade nao está.

 

Como posso resolver isso? ou existe uma maneira melhor de isso?

 

 

Editado para corrigir uma palavra

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evento on close window do javascript junto com ajax, ao fechar a janela voce faz o campo mudar e destruir a session dele. Depois voce aperfeiçoa para quando ele tiver mais de uma janela aberta e ele fechar apenas uma, nao destruir a session dele com algumas verificações.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só chamar uma página pra encerrar a sessão no php e banco de dados.

Veja:

<script type="text/javascript">
window.onbeforeunload = function() {
    alert("Não feche a janela");
    alert("Pra que isso?");
    alert("Fique mais um pouquinho");
    alert("Estava bom com você aqui");
    alert("O que houve?");
    alert("Vai continuar aqui?");
    alert("Quer mesmo sair?");
    alert("Tem certeza?");
    alert("Absoluta?");
    alert("Jura pelo pai e a mãe?");
    alert("Sim? Então pode ir");
}
</script>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Evento on close window do javascript junto com ajax, ao fechar a janela voce faz o campo mudar e destruir a session dele. Depois voce aperfeiçoa para quando ele tiver mais de uma janela aberta e ele fechar apenas uma, nao destruir a session dele com algumas verificações.

 

Inves de janelas sao abas que se tiver mais de uma aba aberta e ele fechar uma delas, a sessão termina e muda o status. Será que tem como o JS detectar se as abas abertas sao do mesmo site?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você usar javascript pra ficar enviando notificações ao servidor de tempo em tempo, quando não chegar mais notificações após um certo tempo de inatividade é porque o javascript no cliente não está mais executando (fechou aba, navegador...).


Mas seria preciso uma tarefa agendada pra limpar do banco de dados usuários inativos.

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.