English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Tutorial Básico PHP

Tutorial Avançado PHP

PHP & MySQL

Manual de Referência PHP

Cookies no PHP

Neste tutorial, você aprenderá a usar cookies PHP para armazenar informações pequenas dentro do navegador do usuário.

O que é Cookie

Cookie é um pequeno arquivo de texto que permite armazenar uma quantidade pequena de dados no computador do usuário (máximo4KB左右的)。Elas são geralmente usadas para rastrear informações como o nome de usuário, quando o usuário visitar o site novamente, o site pode recuperar essas informações para exibir páginas personalizadas específicas.

Dica:Cada vez que o navegador solicitar uma página ao servidor, todos os dados do cookie serão automaticamente enviados no corpo da solicitação ao servidor.

Definir Cookie

A função setcookie() é usada para definir cookies no PHP. Certifique-se de chamar a função setcookie() antes de qualquer saída gerada pelo script, senão o cookie não será definido. A sintaxe básica da função pode ser dada da seguinte forma:

setcookie(name, value, expire, path, domain, secure);

Os parâmetros da função setcookie() têm o seguinte significado:

ParâmetrosDescrição
nameO nome do Cookie.
valueO valor do Cookie. Como este valor é armazenado no computador do usuário, não armazene informações sensíveis.
expiresData de expiração em formato UNIX timestamp. Após este tempo, o cookie não será acessível. O valor padrão é 0
pathEspecificar o caminho disponível para o cookie no servidor. Se definido como/Neste caso, o cookie estará disponível em todo o domínio.
domainEspecificar o domínio disponível para o Cookie, por exemplo: pt.oldtoolbag.com.
secureEste campo (se existir) indica que o cookie será enviado apenas quando houver uma conexão HTTPS segura.

Dica:Se o tempo de expiração do cookie for configurado como 0 ou omitido, o cookie expirará no final da sessão, ou seja, quando o navegador for fechado.

Aqui está um exemplo de criação de um cookie chamado userName usando a função setcookie() e atribuição de valor John Carter. Além disso, especifica o tempo de expiração do cookie.30 dias)}}30 dias * 24 horas * 60 min * 60 sec).       

<?php
//Configurar Cookie
setcookie("username", "John Carter", time())+30*24*60*60);
?>

Atenção:Todos os parâmetros, exceto o nome, são opcionais. Você também pode substituir os parâmetros por uma string vazia ("") para pular um parâmetro, mas para pular o parâmetro expire, use zero, pois é um inteiro.

Aviso:Não armazene dados sensíveis em cookies, pois usuários mal-intencionados podem manipular dados sensíveis. Para armazenar dados sensíveis de forma segura, useSessão.

Acessar valor do Cookie

A variável global superglobal $_COOKIE do PHP é usada para recuperar valores de cookies. Geralmente é um array associativo que contém a lista de todos os valores de cookies enviados pelo navegador na solicitação atual, com o nome do cookie como chave. Você pode acessar um único valor de cookie usando o símbolo de array padrão, por exemplo, para exibir o cookie de nome de usuário configurado no exemplo anterior, você pode usar o seguinte código.

<?php
//Acessar um único valor do Cookie
echo $_COOKIE["username"];
?>

O código PHP do exemplo acima gera a seguinte saída.

John Carter

É sempre bom verificar se o cookie foi configurado antes de acessar o valor do cookie. Para isso, você pode usar a função PHP isset(), conforme exemplo a seguir:

<?php
//Verificar se o cookie foi configurado
if (isset($_COOKIE["username"])) {
    echo "Hi " . $_COOKIE["username"];
} else {
    echo "Welcome Guest!";
}
?>

Você pode usar a função print_r($_COOKIE); para ver a estrutura do array associativo $_cookie, da mesma forma que você lida com outros arrays.

Excluir Cookie

Você pode excluir o cookie chamando a função setcookie() com o nome do cookie e qualquer valor (por exemplo, uma string vazia), mas você precisa configurar a data de expiração para antes do momento atual, conforme exemplo a seguir:

<?php
//Excluir cookie
setcookie("username", "", time())-3600);
?>

Dica:Você deve passar o nome que foi usado para criar o Cookie pela primeira vez, incluindo o caminho, o domínio e outros parâmetros, para garantir que o Cookie correto seja removido.