Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá, estou querendo fazer um sistema de logout após um determinado tempo de inatividade do usuário. Meu sistema de login consiste em cookies e sessions, que realizar o logout de fato, mas o problema é que fiz uma espécie de "login único" no banco de dados e queria que após um determinado tempo, automaticamente, com o logout, alterasse o campo para permitir o login novamente. Estava pensando em fazer com o javascript e com o ajax, mas não tenho a mínima ideia por onde começar.
na verdade, login ou logout vai depender da condição da sua session... session_start(); ou session_destroy(). Dê uma pesquisada sobre isso. Quando o usuário logar ou deslogar, você não precisa ficar alterando seu banco de dados.
Entendo. É porquê eu queria um sistema de login único e os sessions tem tempo de expiração, logo há um logout automático, porém eu utilizo o banco de dados para informar se o usuário já está logado ou não e, assim, ainda não há um script que altere esse valor para permitir o login novamente.
Então eu deveria procurar outro método de login único?
mas para acessar o banco de dados e verifica, vc precisaria estar logado... pode utilizar cookies ao invés de sessions... defina um limite grande de tempo e mesmo que vc desligue o computador, o cookie fica salvo no navegador. Mas é necessário mesmo um login assim? Dependendo da aplicação, pode ser arriscado, uma vez que cookies são facilmente manipuláveis do lado do cliente.
Concordo com o rnu.silva, mas neste caso, você poderia criar um hash e criar um cookie com o mesmo, e faça o mesmo no banco de dados, pra dar uma segurança a mais verifique se é igual ao do banco de dados, outra opção é uma simples meta, deslogando o usuario 20 minutos depois sem atualizar aquela página:
<meta http-equiv="refresh" content = "1200; url=http://www.site.com/logout">
Mas tem outras opções também, tipo:
http://www.erichynds.com/examples/jquery-idle-timeout/example-mint.htm
http://www.paulirish.com/demo/idle-timer
Usando um dos exemplos, você conseguira facilmente fazer o resto que deseja pelo seu arquivo de logout...
na verdade, login ou logout vai depender da condição da sua session... session_start(); ou session_destroy(). Dê uma pesquisada sobre isso. Quando o usuário logar ou deslogar, você não precisa ficar alterando seu banco de dados.