Defina o tempo limite da sessão no PHP

Defina o tempo limite da sessão no PHP
A inatividade de um usuário registrado é verificado pelo tempo limite da sessão. Quando um usuário faz login em um site, uma sessão cria para esse usuário e a sessão é destruída quando o usuário logout ou fecha o navegador. O tempo limite da sessão é usado para definir o prazo para a inatividade do usuário. Suponha que, se o limite de tempo limite da sessão estiver definido como 60 segundos e o usuário estiver inativo por 60 segundos, a sessão desse usuário será expirada e o usuário precisará fazer login novamente para acessar o site. A maneira de definir ou atualizar o tempo limite da sessão no PHP mostrou neste tutorial.

Manuseio de sessão no PHP

O session_start () A função é usada para criar uma nova sessão para o usuário. O nome da sessão padrão é phpsessid e é usado para verificar se a sessão existe ou não. Se nenhuma informação de cookie ou sessão for encontrada, uma nova sessão será gerada para o usuário; caso contrário, a sessão atual será usada para o usuário.

Definindo tempo limite da sessão

O limite de tempo limite da sessão pode ser definido definindo o valor de duas diretivas no php.ini arquivo ou usando a função ini_set () no script php. As diretivas são dadas abaixo.

  1. sessão.gc_maxlifetime
  2. É usado para definir o limite de tempo em segundos para armazenar as informações da sessão no servidor por um longo tempo.

  3. sessão.Cookie_lifetime
  4. É usado para definir o limite de tempo de expiração para o cookie phpsessid.

Defina o tempo limite da sessão no PHP

As maneiras de definir o valor do tempo limite da sessão no PHP para lidar com a sessão de um usuário foram mostradas nesta parte do tutorial usando vários exemplos.

Exemplo 1: Defina o valor do tempo limite da sessão usando as diretivas PHP

Crie um arquivo PHP com o seguinte script para saber a maneira de definir o tempo limite da sessão usando diretivas de PHP e sessões de manuseio com base nos valores da diretiva. O ini_set () a função tem sido usada no script para definir o valor do sessão.gc_maxlifetime e sessão.Cookie_lifetime diretivas. A duração da sessão foi definida como 2 segundos para fins de teste. A variável superglobal $ _Cookie Array foi usada aqui para lidar com a sessão. A nova sessão será gerada para o usuário quando o script será executado no navegador e após dois segundos a sessão será expirada.

// Defina o tempo limite da sessão por 2 segundos
$ timeout = 2;
// Defina o máximo de tempo da sessão
ini_set ("Sessão.gc_maxlifetime ", $ timeout);
// Defina a vida útil do cookie da sessão
ini_set ("Sessão.cookie_lifetime ", $ timeout);
// Inicie uma nova sessão
session_start ();
// Defina o nome da sessão padrão
$ s_name = session_name ();
// Verifique se a sessão existe ou não
if (isset ($ _cookie [$ s_name]))
setcookie ($ s_name, $ _cookie [$ s_name], time () + $ timeout, '/');
eco "sessão é criada para $ s_name.
";

outro
eco "sessão expirou.
";
?>

Saída:

A saída a seguir aparecerá após a execução do script acima pela primeira vez. A saída mostra o nome de usuário da sessão padrão, phpsessid.

A saída a seguir aparecerá se a página for atualizada após 2 segundos.

Exemplo-2: Defina o valor do tempo limite da sessão usando $ _Session Array

Crie um arquivo PHP com o seguinte script para definir o valor do tempo limite da sessão usando a variável superglobal PHP, $ _Session. A duração do tempo da sessão foi definida como 5 segundos para fins de teste. Em seguida, o tempo de solicitação do usuário para a página foi armazenado em uma variável nomeada $ tempo. Quando a duração do tempo entre o $ tempo A variável e a última atividade do usuário serão mais de 5 segundos, então a sessão atual do usuário será destruída e uma nova sessão será gerada. O session_unset () e session_destroy () As funções usaram no script para destruir a sessão.

// Inicie uma nova sessão
session_start ();
// Defina a duração da sessão por 5 segundos
$ duração = 5;
// Leia o tempo de solicitação do usuário
$ time = $ _server ['request_time'];
// Verifique se a sessão do usuário existe ou não
if (isset ($ _ sessão ['last_activity']) &&
($ tempo - $ _session ['last_activity'])> $ duração)
// não define as variáveis ​​de sessão
session_unSet ();
// Destrua a sessão
session_destroy ();
// Comece outra nova sessão
session_start ();
eco "nova sessão é criada.
";

outro
eco "Sessão atual existe.
";
// Defina a hora da última atividade do usuário
$ _Session ['last_Activity'] = $ time;
?>

Saída:

A saída a seguir aparecerá após a execução do script acima pela primeira vez.

A saída a seguir aparecerá se a página for atualizada após 5 segundos.

Exemplo-3: Defina o valor do tempo limite da sessão usando $ _Session Array e Time () Função

Crie um arquivo php com o seguinte script para definir o valor do tempo limite da sessão usando a variável php superglobal, $ _Session, e a função PHP integrada, Time (). A função the time () retorna o valor atual do timestamp do sistema. A duração do tempo da sessão foi definida como 600 segundos (10 minutos) no script.

O $ _Session ['start'] foi usado para armazenar o tempo de partida da sessão. Quando a duração do horário entre o horário atual e o horário de início da sessão será superior a 10 minutos, a sessão atual do usuário será destruída. As funções session_unset () e session_destroy () foram usadas no script como exemplo anterior para destruir a sessão.

// Inicie uma nova sessão
session_start ();
// Verifique se a hora do início da sessão está definida ou não
se(!ISSET ($ _ Sessão ['Start']))))

// Defina o horário de início da sessão
$ _Session ['start'] = time ();

// Verifique se a sessão expirou ou não
if (isset ($ _ session ['start']) && (time () - $ _session ['start']> 600))
// não define as variáveis ​​de sessão
session_unSet ();
// Destrua a sessão
session_destroy ();
eco "sessão expirou.
";

outro
eco "Sessão atual existe.
";
?>

Saída:

A saída a seguir aparecerá após a execução do script acima pela primeira vez. A mensagem expirada será exibida se a página for atualizada após 10 minutos.

Conclusão

Três maneiras diferentes de definir o valor do tempo limite da sessão para lidar com a sessão de um usuário no PHP foram mostradas neste tutorial. Os usuários do PHP receberão o conceito básico de implementar a sessão do usuário usando as variáveis ​​$ _cookie e $ _session e poderá aplicá -lo em seu script depois de ler este tutorial.