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 documentaçãosetcookie. 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 documentação$_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:

Diretório de Cookies no Windows

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.



<< Lição 12: Sessões

Lição 14: Sistema de arquivos >>