Olá Pessoal, aqui estamos para mais uma Quick tips, vamos continuar com o assuntos de Super Globais no PHP. Nas ultimas tips vimos algumas Super Globais como GET, POST, FILES entre outras. Hoje veremos a Super Global $_COOKIE. Antes de mais nada vamos entender o que é um cookie.

Como já comentamos em posts anteriores o ambiente web é stateless, ou seja, não se guarda informações entre as requisições. Isto ocorre por questão de performance. Imagine se o servidor da devmedia guardasse todas as informações de todos os usuários que estão usando o site neste momento em que você lê este post. Haja memória.

Se o ambiente Web é stateless então como guardar informações entre as requisições, ou mesmo manter uma informação mesmo quando o browser for fechado ?  Ai é que entram os Cookies. Os cookies nada mais são do que arquivos txt geradas na maquina do cliente e suportado pelos browser onde podemos manter informações do usuario por um período determinado.

Agora, onde isso seria útil. Bem isso é útil em situações por exemplo em que queremos mantar o usuario logado por um período de tempo, ou memso salvar o login de uma área restrita por exemplo. Observe a figura abaixo:





Com certeza os sites citados acima utilizam cookies para guardar estas informações na máquina do usuário.

Visto essa rápida introdução sobre cookie vamos ao PHP, vamos ver como utilizar cookies no PHP. Para variar a super global $_COOKIE também é um array associativo, onde a chave é o nome do cookie que queremos acessar e o valor é o conteúdo que será gravado no cookie. Agora tem um detalhe, para se criar um cookie nós utilizamos a função setcookie que pede para nós os seguintes parâmetros:

name   -  Nome do Cookie
value   -   Valor do Cookie
expire  -  Tempo de expiração do cookie
path     -  Caminho do servidor onde cookie é válido
domain -  Domínio para o qual o cookie será enviado
secure  - Se for 1 o cookie somente será enviado se a comunicação entre cliente e servidor for uma conexão segura ( HTTPS ). Default é o valor 0.

Feito isso segue abaixo um exemplo de como criar um cookie quando o usuário selecionar que deseja se manter logado por 10 dias por exemplo.

    setcookie("login", $usuario, time()+3600*24*10);


Repare que informamos apenas o nome do cookie, o valor gravado e o tempo do cookie 3600 segundos vezes 24 que é o numero de horas de um dias, vezes 10 dias.  Simples assim !!

Agora para verificar se o cookie ainda está ativa então temos que utilizar a super global $_COOKIE.

if($_COOKIE["login"]) {
  $usuario = $_COOKIE["login"];
  echo "Olá, <b>$usuario</b>. Seja Bem vindo ao nosso Web Site.";

}


Bem, com isso encerramos o assunto $_COOKIE. Hoje em dia temos outras opções para armazenar informações entre as requisições, como é o caso sa sessão do servidor. Mas isso é assunto para outro post.

Abraços e até mais !!!