Ir ao conteúdo

Posts recomendados

Postado

Bom, o meu problema é com relação ao login feito por um usuário. Gostaria de impedir que outro usuário entre novamente enquanto já houve um ativo. Pesquisei e já pensei em armazenar no banco de dados, que daria certo mas com um problema: se o usuário sempre fizer logout da maneira correta o problema não ocorreria, mas e se esse fechasse o navegador? A sessão seria encerrada, mas como eu iria atualizar o banco de dados para permitir que faça login novamente? Agradeço o apoio de quem puder me ajudar.

  • Moderador
Postado

@iHollyZinhO

Já tentou fazer com sessions, armazenando um tempo limite para a sessão.  Então na página estrita você faz a verificação da sessão. Se o valor do tempo limite for maior, você destrói a sessão. senão renova com o valor!

 

Exemplo:

<?php
session_start(); 
//Seta configurações  hora e tempo limite de inatividade
date_default_timezone_set("Brazil/East");

//Seta para 900 segundos(15 minutos) o tempo limite de inatividade
$tempolimite = 900;

// armazena na sessão 'hora_login' o momento em que autenticado
 $_SESSION['hora_login'] = time(); 

// armazena o tempo limite sem atividade //
 $_SESSION['limite'] = $tempolimite; 

?>

Isso você coloca no arquivo php que faz a autenticação.

 

Para testar, coloque na sua página restrita:

<?php
    $horaLogin = $_SESSION['hora_login'];
    $limite = $_SESSION['limite'];
    
    // verifica se a session  horaLogin ainda está ativo
    if($horaLogin): $segundos = time()- $horaLogin; endif;
 
    /* verifica o tempo de inatividade. Se ele tiver ficado mais de 15 minutos 
    inativo ele destrói a session se não ele renova o limite de tempo. */
   
    ($segundos > $limite) ? session_destroy : $_SESSION['hora_Login'] = time();
    
?>

 

Desvantagem: A cada 15 min a sessão será destruída, mas você pode aumentar o tempo de limite para meia hora 1800 segundos.

 

Tem outros métodos, posso procurar aqui em meus códigos e postar um exemplo(do tempo de faculdade).

Neste código, eu tinha feito para que mesmo quando fechasse o navegador, o usuário permanecesse logado, ao entrar, ele era redirecionado diretamente para a página restrita e caso ele clicasse em logout, ele seria redirecionado para o fomulário de login. 

  • Curtir 1
Postado
5 horas atrás, DiF disse:

@iHollyZinhO

Já tentou fazer com sessions, armazenando um tempo limite para a sessão.  Então na página estrita você faz a verificação da sessão. Se o valor do tempo limite for maior, você destrói a sessão. senão renova com o valor!

 

Exemplo:


<?php
session_start(); 
//Seta configurações  hora e tempo limite de inatividade
date_default_timezone_set("Brazil/East");

//Seta para 900 segundos(15 minutos) o tempo limite de inatividade
$tempolimite = 900;

// armazena na sessão 'hora_login' o momento em que autenticado
 $_SESSION['hora_login'] = time(); 

// armazena o tempo limite sem atividade //
 $_SESSION['limite'] = $tempolimite; 

?>

Isso você coloca no arquivo php que faz a autenticação.

 

Para testar, coloque na sua página restrita:


<?php
    $horaLogin = $_SESSION['hora_login'];
    $limite = $_SESSION['limite'];
    
    // verifica se a session  horaLogin ainda está ativo
    if($horaLogin): $segundos = time()- $horaLogin; endif;
 
    /* verifica o tempo de inatividade. Se ele tiver ficado mais de 15 minutos 
    inativo ele destrói a session se não ele renova o limite de tempo. */
   
    ($segundos > $limite) ? session_destroy : $_SESSION['hora_Login'] = time();
    
?>

 

Desvantagem: A cada 15 min a sessão será destruída, mas você pode aumentar o tempo de limite para meia hora 1800 segundos.

 

Tem outros métodos, posso procurar aqui em meus códigos e postar um exemplo(do tempo de faculdade).

Neste código, eu tinha feito para que mesmo quando fechasse o navegador, o usuário permanecesse logado, ao entrar, ele era redirecionado diretamente para a página restrita e caso ele clicasse em logout, ele seria redirecionado para o fomulário de login. 

Ótima ideia, vou tentar implementar. Por favor, se puder procurar eu agradeço.

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!