Login evitar acessos multiplos a mesma conta em php e mysql

3 respostas
A

Oi,
Gostaria de saber se alguem tem alguma ideia de como faço para evitar q varias pessoas acessem a mesma conta ao mesmo tempo.Eu ate pensei numa solucao como : colocar na tabela do mysql quando o usuario loga-se , por exemplo logado=1 e quando ele aperta-se o botao de logout o logado=0 . O problema eh q muitos usuarios preferem fechar o site do que apertar logout e eu nao sei se tem como fazer o update do mysql quando o usuario fechar o navegador.

Tambem ja pensei em determinar um tempo como por exemplo 15 minutos e depois desses 15 minutos o mysql deleta os dados e expulsa o usuario.

$query = "DELETE FROM `".$_VO['tabela_v']."` WHERE (`hora` <= (NOW() - INTERVAL ".$_VO['cookieTempo']." MINUTE)) AND `identificador` != '".$identificador."'";mysql_query($query);

Tentei esse codigo so que ele nao apagou depois do tempo determinado.

Voces tem alguma ideia?

3 Respostas

A

Pessoal,

Tenho umas ideias e gostaria debater com vcs sobre esse problema:

  1. Gerar uma tabela com usuarios logados colocando o horário de acesso
  2. Ao logar ver se consta na tabela usuarios logados, se não tiver na tabela incluir, se tiver impedir de logar
  3. Num periodo de tempo, 10 minutos, limpar o registro do usuario que tem esse tempo -> meu problema esta ai, não estou conseguindo apagar
  4. Se acessar outras páginas do site ficar renovando o horário de acesso

O que vc acham da ideia? E viável ?

Alguem poderia sugerir outra ideia?

Obrigado a todos,
Artur

D

Para quê tanta coisa.
1 - Controle o tempo de sessão no PHP mesmo.
2 - Crie apenas um campo bool no mysql, setando, por padrão 0 (falso) e, então, caso o sujeito faça login, altere-o para 1 (true).
3 - Quando o usuário deslogar, faça um update, setando o campo logado para 0 (false).
4 - Se a sessão expirar, redirecione para o logoff e faça o update para 0 (false).

A

Mas tem um pequeno detalhe, o usuário raramente desloga, simplesmente fecha ou muda de site.

Então vai ficar como logado.

Criado 7 de fevereiro de 2012
Ultima resposta 14 de fev. de 2012
Respostas 3
Participantes 2