Javascript - Despoletar evento

Saraiva-Man

Membro
Olá. :)

A questão é a seguinte:
Estou a desenvolver um site e quero ter acesso a todos os utilizadores online.
Tenho uma base de dados (MySQL) onde na minha tabela de utilizadores tenho um campo chamado "online" (boolean). Quando me registo, passo a true.
Como fazer para passar a false quando saio do site?

Tenho mesmo um ficheiro que trata de fazer o logout e destruir a sessão, caso carregue no link "Logout". E se eu sair fechando o browser? Poderei associar algo a Javascript e ao evento
Código:
<body onunload="" >
...
</body>

Obrigado pela ajuda! ;)

E se houver outro método melhor...agradeço então que me elucidem e me digam que técnicas deva estudar.

Mais uma vez, obrigado.
 
sessões não se controlam dessa forma.

Então e se o browser crashar ? ;)


Tens duas formas de o fazer (decentes).

1º Contas todas as sessões criadas (count($_SESSION))
2º Crias uma tabela na base de dados, onde acrescentas todas as sessões que crias juntamente com a hora da sua criação.
Para esta segunda opção podes depois contar os utilizadores online nos ultimos 5 minutos (por exemplo !) bastando para isso fazer uma querie que faça o count(*) de todos os valores cuja hora apresenta uma diferença de 5 minutos para a actual.
Em mysql podes usar a função DATE_SUB(NOW(), INTERVAL 5 MINUTES).

Tem em atenção que isto é muito bonito mas para sites grandes obriga a um esforço extra do processador.
 
sessões não se controlam dessa forma.

Então e se o browser crashar ? ;)


Tens duas formas de o fazer (decentes).

1º Contas todas as sessões criadas (count($_SESSION))
2º Crias uma tabela na base de dados, onde acrescentas todas as sessões que crias juntamente com a hora da sua criação.
Para esta segunda opção podes depois contar os utilizadores online nos ultimos 5 minutos (por exemplo !) bastando para isso fazer uma querie que faça o count(*) de todos os valores cuja hora apresenta uma diferença de 5 minutos para a actual.
Em mysql podes usar a função DATE_SUB(NOW(), INTERVAL 5 MINUTES).

Tem em atenção que isto é muito bonito mas para sites grandes obriga a um esforço extra do processador.
Dá-me mais alguns pormenores acerca da primeira opção.

Contar as sessões. Envio as sessões (ou só o ID do user) para a minha base de dados MySQL? ? ?

Só conheço a função COUNT() em MySQL...pois em PHP conta o número de elementos de um Array...certo?

Cumprimentos, e desde já obrigado pela ajuda. :)
 
Back
Topo