Criar, Ler, Alterar, Verificar e Deletar Cookies no PHP



Neste tutorial vamos mostrar como manipular cookies utilizando o PHP. Veremos como criar, ler, alterar e deletar cookies através de uma página PHP. Mas afinal, o que são um cookies?

Cookies são pequenos arquivos incorporados pelo servidor no computador do usuário. Servem para trocar dados entre o navegador do usuário e o servidor da página que o criou.

O cookie ficará disponível pelo tempo que o desenvolvedor do site definir. Portanto, se o cookie estiver válido, ou seja, disponível, ele poderá ser acessado em  seu código mesmo que o cliente feche o navegador ou desligue o computador. No próximo acesso, os dados estarão disponíveis novamente para consulta. O cookie será automaticamente apagado quando a data determinada expirar.

O cookie pode ser utilizado na criação de carrinho de compras em sites de e-commerce, banners rotativos sem repetição, visitas de usuários, últimas buscas, botões de curtidas, etc.

Atenção.: Cookies podem apresentar problemas como: o usuário apagar os cookies do navegador, ou o computador ser formatado, ou até mesmo o usuário bloquear a utilização de cookies pelo navegador.

1 - Como criar cookies

1.1. A função PHP utilizada para criar cookies é setcookie(). Veja abaixo sua sintaxe:

Sintaxe:

setcookie(nome, valor, expira);

onde:

nome: Nome do cookie necessário para acessar as informações armazenadas.

valor: Informações que queremos gravar no cookie.

expira: Tempo em que o cookie deverá ficar armazenado no computador do cliente. Este tempo é indicado sempre em segundos.

Para definir o tempo de duração do cookie, vamos utilizar a função time(), tempo atual mais o tempo de vida do cookie em segundos.

Nota1: 3.600 segundos = 1 hora | 86.400‬ = 1 dia

Nota2: Se o tempo de duração do cookie for configurado como 0, ou omitido, o cookie irá expirar ao fim da sessão (quando o navegador fechar).  

Obs.: Existem ainda mais quatro parâmetros (pouco comuns) que você poderá utilizar (Documento oficial PHP).

1.2. Para ler o(s) valor(es) de um cookie utilizamos a variável "superglobal" $_COOKIE[]. Veja a sintaxe abaixo:

Sintaxe:

$_COOKIE['nome"]

onde:

nome: Nome do cookie que foi criado pela função setcookie().

1.2. Veja abaixo o exemplo onde criamos e recuperamos o cookie "site":

<?php
$cookie_name = "site";
$cookie_value = "Portal Visual Dicas";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30)); // 86400 = 1 dia

if(!isset($_COOKIE[$cookie_name])) { // verifica se o cookie_name está definido
     echo "O cookie '" . $cookie_name . "' não está definido!";
} else {
     echo "O valor do cookie '" . $cookie_name . "' é ".$_COOKIE['site']." !<br>";
}

Veja como ficou o nosso exemplo.

2 - Como alterar cookies

2.1. Para alterar os valores de um cookie, basta enviar novamente o cookie utilizando a função setcookie():

2.2. Exemplo de alteração de um cookie:

<?php
$cookie_name = "site";
$cookie_value = "Squids Arduino";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30)); // 86400 = 1 dia

if(!isset($_COOKIE[$cookie_name])) { // verifica se o cookie_name está definido
     echo "O cookie '" . $cookie_name . "' não está definido!";
} else {
     echo "O valor do cookie '" . $cookie_name . "' mudou para ".$_COOKIE['site']." !<br>";
}

Veja como ficou o nosso exemplo.

3 - Verificar se o cookie está ativo

3.1. O exemplo abaixo mostra como podemos verificar se um cookie está ativo ou não.

<?php
if(count($_COOKIE) > 0) {
    echo "Cookies estão ativos.";
} else {
    echo "Cookies não estão ativos.";
}

Veja como ficou o nosso exemplo.

4 - Como deletar um cookie

4.1. Para deletar um cookie basta colocar um tempo de expiração negativo ou definir o valor como vazio. Veja a sintaxe abaixo:

setcookie(nome, '', time()-3600); // tempo negativo e/ou valor vazio ('')

4.2. Veja o exemplo abaixo:

<?php
setcookie('site', '', time()-3600); // tempo negativo e/ou valor vazio

//verifica se o cookie está definido
if(!isset($_COOKIE['site'])) { // verifica se o cookie_name está definido
     echo "O cookie 'site' não está definido!<br>";
} else {
     echo "O valor do cookie 'site' é ".$_COOKIE['site']." !<br>";
}

if(count($_COOKIE) > 0) { // verifica se o cookie está ativo
    echo "O cookie está ativo.";
} else {
    echo "O cookie não está ativo.";
}

Veja como ficou o nosso exemplo.

Documentação Oficial

1. [Documentação PHP - função setcookie()] » Sobre a função setcookie() - envia um cookie".

2. [Documentação PHP - $_COOKIE] » Variável superglobal $_COOKIE.

O anúncio abaixo ajuda manter o Portal Visual Dicas

Comentários

×

Infomações do site / SEO