Categorias

Setando cookies para longa duração em PHP

Bom, isso é uma coisa simples e que muita gente pode utilizar em seus sites. Fazer com que os usuários “loguem” uma vez só e que depois através de um cookie seja reconhecido ao entrar no site novamente e faça o auto login.

Todos sabemos que se setarmos um cookie sem um tempo determinado ele expira no momento em que o usuário fecha o cliente (conhecido por cokie de sessão).

Então a lógica desse tipo de login automático é simples e eficaz: utilizar um tempo enorme para que o cookie fique no PC do cliente mesmo que ele feche o browser e desligue o PC.

NOTA: Acredito que isso (com edição na mútliplicação) pode ser usado em sistemas de TOPSITES evitando que o cliente se reconecte alterando o IP para poder votar denovo.

Mas como vamos usar o tempo? Bom, vamos fazer uma múltiplicação simples:

3600*24*30*12*5

Agora vamos entende-la:
3600 = Número em segundos de 1 hora.

24 = Múltiplicando 3600 por 24 implica em 1 dia, pois o mesmo tem 24 horas ou (24*3600 segundos).

30 = Mútiplicando 3600*24*30 mostra que esse dia é compreendido em 30 caracterizando 1 mês.

12 = Múltiplicando 1 mês (ou 3600*24*30) por 12 compreende-se 12 meses o que resulta em 1 ano.

5 = Este valor pode ser alterado e caracteriza o número de anos. Escolhi 5 pois achei ser um tempo bem longo e suficiente. Não acho que alguém vá manter um PC sem formatar ou sem limpar a pasta de cookies por mais de 5 anos né.

Passando adiante vamos aplicar isso na configuração do cookie utilizando para o tempo a função time() dentro da função setcookie que cria o cookie.

O código ficaria assim:



Neste caso, na função setcookie() usamos por ordem:
Nome do cookie
Conteúdo do cookie
Tempo de duração (opcional)

Página das funções utilizadas:

setcookie();
time();