English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Neste tutorial, você aprenderá a usar cookies PHP para armazenar informações pequenas dentro do navegador do usuário.
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.
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âmetros | Descrição |
---|---|
name | O nome do Cookie. |
value | O valor do Cookie. Como este valor é armazenado no computador do usuário, não armazene informações sensíveis. |
expires | Data de expiração em formato UNIX timestamp. Após este tempo, o cookie não será acessível. O valor padrão é 0 |
path | Especificar o caminho disponível para o cookie no servidor. Se definido como/Neste caso, o cookie estará disponível em todo o domínio. |
domain | Especificar o domínio disponível para o Cookie, por exemplo: pt.oldtoolbag.com. |
secure | Este 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.
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.
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.