2
respostas

Tempo para expirar

Enquanto trabalhávamos com COOKIES, aprendemos a definir quanto tempo aquele COOKIE seria válido.

Podemos fazer o mesmo com SESSION? Se sim, como ?

2 respostas

Henrique, você pode fazer algo mais ou menos assim:

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
}

Se você quer alterar o tempo padrão da sessão no PHP, você pode editar o arquivo php.ini, localizado dentro da pasta onde está instalado o PHP, e alterar a propriedade session.gc-maxlifetime

https://secure.php.net/manual/pt_BR/session.configuration.php#ini.session.gc-maxlifetime

Você também pode alterar esta configuração dentro de seus arquivos PHP

<?php

// Tempo em segundos - 1 hora
ini_set('session.gc_maxlifetime', 3600);

// Tempo em segundos - 1 hora
session_set_cookie_params(3600);

?>

Caso o seu servidor hospede vários sites, você pode, na raiz do site, criar o seu próprio php.ini, apenas com os comandos que deseja alterar