1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Javascript - Despoletar evento

Discussão em 'Web Development' iniciada por Saraiva-Man, 4 de Janeiro de 2008. (Respostas: 5; Visualizações: 653)

  1. 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.
     
  2. fil79

    fil79 Power Member

  3. Bem, percebi todo o código. Parece uma boa solução...e muito provavelmente vou optar por ela!!! :p

    Obrigado fil79. ;)
     
  4. Tyran

    Tyran Power Member

    Sim, podes fazer isso, meter javascript no onunload!

    cumpzz
     
    Última edição: 5 de Janeiro de 2008
  5. spastikman

    spastikman Banido

    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.
     
  6. 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. :)
     

Partilhar esta Página