Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Como faço pra definir o tempo de uma session em PHP?

Da pra definir o tempo de uma SESSION em PHP sem usar variáveis? Tipo eu já vi que da pra definir o tempo de COOKIES em PHP utilizando time() +. Mas da pra fazer isso com SESSION? ou tem algum outro método que consiga estabelecer o tempo de uma SESSION?

3 respostas

Olá Bernardo, tudo bem?

Encontrei umas coisinhas legais na documentação do PHP onde relata sobre expiração de SESSION em PHP, segue o link da documentação

https://secure.php.net/manual/pt_BR/function.session-cache-expire.php

Espero ter ajudado :)

solução!

Existem duas formas de ver esta questão do tempo, você pode:

1 - Definir um tempo de vida de qualquer sessão. Neste caso , seria uma configuração do PHP, ou 2 - Definir um tempo para bloquear o acesso por inatividade. Neste caso, seria por programação.

Este link pode te ajudar:

https://cursos.alura.com.br/forum/topico-tempo-para-expirar-28109

Mateus e Daniel, com a contribuição de vocês eu consegui resolver utilizando o seguinte código:

if (!isset($_SESSION['MINHA_SESSAO'])) {
    $_SESSION['MINHA_SESSAO'] = time();
} else if (time() - $_SESSION['MINHA_SESSAO'] > 1800) { // sessão iniciada há mais de 30 minutos
    session_regenerate_id(true); // muda o ID da sessão para o ID corrente e invalidar o ID antigo
    $_SESSION['MINHA_SESSAO'] = time();  // atualiza o tempo de criação da sessão
}