Lição 13: Cookies
Quais são as informações sobre seus visitantes, como elas são coletadas por um site e que uso o site faz das informações são questões que podem intrigar o usuário. Cookies são normalmente citados quando se quer exemplificar uma forma de coletar informações e de invasão de privacidade. Mas, afinal devemos nos preocupar com isso? Tire suas próprias conclusões. Ao terminar esta lição você saberá o que pode ser feito com cookies.
O que é cookie?
Cookie é um pequeno arquivo de texto no qual um site pode armazenar informações. Cookies são gravados no disco rígido do usuário e não no servidor.
A maioria dos cookies expira (se auto apagam) depois de transcorrido um determinado tempo de pode variar de 1 minuto a vários anos. Contudo o usuário pode identificar e apagar cookies do seu computador a qualquer momento.
A maioria dos navegadores, tais como, Microsoft Internet Explorer, Mozilla Firefox e Google Chrome, podem ser configurados de modo a que o usuário seja previamente avisado da gravação de cookie e dar-lhe a opção de aceitar ou não a gravação. Mas, por que simplesmente não permitir a gravação de cookies? Bem, isto é possível, contudo muitos sites não funcionarão sem uso dos cookies. Isto porque eles dependem de cookies para melhorar a usabilidade e viabilizar a funcionalidade do site.
Como a informação é armazenada no cookie?
É fácil configurar ou modificar um cookie com uso da função PHP setcookie. No exemplo a seguir criaremos um cookie e a ele daremos um valor.
Primeiro devemos escolher um nome para o cookie. No nosso exemplo escolhemos o nome "HTMLTest". A seguir definimos um valor para o cookie como mostrado a seguir:
<?php // Configura o cookie setcookie("HTMLTest", "Este é um cookie para teste"); ?>
Por padrão, um cookie expira quando o navegador é fechado, mas isto pode ser facilmente alterado adicionando-se um parâmetro a mais na função definindo o tempo de vida do cookie:
<?php // Configura o cookie setcookie("Name", "C. Wing, time()+3600); setcookie("Interests", "plane spotting", time()+3600); ?>
"Time()+3600" define que o cookie expira em 3600 segundos (60 minutos) a partir de agora.
No exemplo mostrado armazenamos informações sobre o nome do usuário e seus interesses. Estas informações podem ser úteis, por exemplo, para direcionar o usuário para uma seção específica do site.
Como se recupera o valor de um cookie?
Para recuperar o valor de um cookie usamos $_COOKIE. Por exemplo; para recuperar o valor do cookie mostrado no exemplo anterior a sintaxe é conforme mostrada a seguir:
<?php // Recupera o vlor do cookie $strName = $_COOKIE["Name"]; strInterest = $_COOKIE["Interest"]; // Escreve no cliente echo "<p>" . strName . "</p>" echo "<p>Você é interessado em: . " strInterest . "</p>" ?>
Quem pode ler um cookie?
Por padrão, um cookie pode ser lido por documentos de até segundo nível hospedados no mesmo domínio (por exemplo: html.net) no qual ele foi criado. Contudo, com uso dos parâmetros domain e path você pode restringir mais este comportamento usando a sintaxe mostrada a seguir:
setcookie(name, value, expiration time, path, domain);
Vejamos um exemplo:
<?php // Configurando o cookie: nome, valor, tempo da vida, caminho, domínio setcookie("Name", "C. Wing", time()+60*60*24*365, "/tutorials/php/", "www.html.net"); ?>
No exemplo mostrado criamos um cookie chamado "Name" com o valor "C. Wing." O cookie expira em 1 ano (60 segundos * 60 minutos * 24 horas * 365 dias) e pode ser lido apenas por arquivos no diretório "/tutorials/php/" no (sub-)domínio "www.html.net".
Exemplo de cookie
Vamos gravar um cookie no seu computador e observar o que acontece.
O código mostrado a seguir cria o cookie:
<?php // Criar cookie setcookie("HTMLTest", "Este é um cookie para teste!", time()+60*60*24, "/tutorials/php/", "www.html.net"); // Escreve a informação no cliente echo $_COOKIE ["HTMLTest"]; ?>
O cookie foi gravado no seu disco rígido. O cookie e gravado em um local do disco rígido que varia com o sistema operacional usado pelo usuário. Uma vez que você consiga localizá-lo o seu formato parecido com o seguinte:
Como você pode ver um cookie é um arquivo de texto que pode ser aberto no Notepad, por exemplo. O conteúdo do cookie que acabamos de criar se parece com o seguinte:
HTMLTest TEXT=Este+é+um+cookie+para+teste%21 www.html.net/tutorials/php 0 80973619229399148 4216577264 29399141 *
Não iremos nos aprofundar mais em cookies, contudo note que o usuário detém o controle sobre a gravação de cookies no seu computador.
Nesta lição estudamos os cookies e suas finalidades. É sabido que alguns sites usam cookies com propósitos excusos. Mas, na maioria dos casos cookies são usados para tornar a interação com o site mais amigágel ou para individualizar o uso do site.
Pode ser uma boa ideia usar cookies no seu site, mas neste caso é de boa prática informar o usuário sobre seu uso. Você pode passar esta informação na política de privacidade do site ou durante o processo de registro do usuário no site.