Definir tempo vida de uma Sessão em PHP

01/09/2021

0

PHP

Estou tentando definir o tempo de vida das minhas sessões, mas nada do que já vi até agora deu certo.

Defini o tempo de 1 minuto e fiz diversos testes pra ver se funciona:

#Teste 1 - Setei o cache para 1 minuto
session_cache_expire(1);
session_start();


#Teste 2 - Setei o Lifetime do cookie para 60 segundos
define("LIFETIME", 60);
session_set_cookie_params(LIFETIME);
session_start();


#Teste 3 - Setei diretamente no php.ini o maxlifetime e o cookie para 60 segundos
session.gc_maxlifetime = 60
session.cookie_lifetime = 60


Nada deu certo até agora, alguém poderia me ajudar por favor?
Isabela

Isabela

Responder

Post mais votado

01/09/2021

Fala comigo Isabela... tudo bem ?

O tempo em minutos é calculado em segundo, ou seja, para cada 01min equivale a 60seg.
Então para definir um tempo limite nas sessões, use um registro de data e hora pra indicar a hora da última atividade / solicitação:

if(isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {

    //A última solicitação foi há mais de 30 minutos
    session_unset();     //Variável para o tempo de execução 
    session_destroy();   //Destruir os dados da sessão no armazenamento
}

//Atualizar o registro de data e hora da última atividade
$_SESSION['LAST_ACTIVITY'] = time(); 


Vale ressaltar que session.gc_maxlifetime e session.cookie_lifetime não são confiáveis.
Espero que te ajude e que funcione kk abraços...

Yuri Aguiar

Yuri Aguiar
Responder

Mais Posts

01/09/2021

Isabela

Ei @Yuri Aguiar
Obrigada pela atenção ;)

Então, eu testei seu código, ele funciona apenas se eu quiser de fato testar por 1 minuto ou menos do que vem por default. Porém, eu testei em seguida com 3600, ou seja, 1 hora e a sessão foi encerrada antes deste tempo, mantendo seu tempo de vida default.
Não sei o que fazer :(
Responder

02/09/2021

Yuri Aguiar

Opa...
Quando lembra que você alterou no php.ini?

#Teste 3 - Setei diretamente no php.ini o maxlifetime e o cookie para 60 segundos
session.gc_maxlifetime = 60
session.cookie_lifetime = 60


Não sei se você tentou alterar aumentando o tempo no arquivo.
Caso não tenha configurado, pode ser que ele esteja limitando no sua aplicação local.


Responder

04/10/2021

Isabela

Oi Yuri, desculpe a demora...

Ainda não resolvi esse troço =/

Então, eu já fiz de tudoooooo...

Já configurei o php.ini, já configurei o servidor (hostgator), já fiz aquelas configurações acima e NADA!

Tudo que eu preciso é aumentar o tempo de sessão da minha aplicação. Eu preciso que ela fique ativa (logada) por 24 horas.
Responder

05/10/2021

Yuri Aguiar

Opa, boa noite Isa! Dependendo, seria melhor e até mais fácil para você realizar o controle através do próprio banco de dados, porque essas variáveis de sessões apesar de serem consideradas seguras por conta de serem server-side, depende de como é configurado os dados armazenados nos cookies serão de fácil acesso.

Então... para qual finalidade você precisa realizar isso?
Responder

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar