Урок 13: Куки

Крайне важно, Как и какую информацию вэб-сайты собирают у пользователей, в особенности как её используют. Куки часто упоминаются как пример того, что информация собирается и ставит под угрозу вашу секретность. Но есть ли повод для волнения? Судите сами. Пройдя этот урок, вы узнаете, что можно делать с куками.

Что такое кука?

Кука это небольшой текстовый файл, в котором сайт может хранить различную информацию. Куки сохраняются на жёстком диске пользователей, а не на сервере.

Срок годности большинства кук истекает после предопределённого периода времени (они самоудаляются), и этот период может варьироваться от одной минуты до нескольких лет. Но пользователь и сам может удалять любые куки на своём компьютере.

Большинство браузеров, таких как Microsoft Internet Explorer, Mozilla Firefox и Google Chrome, могут быть сконфигурированы так, что пользователь может решать, принимать ли куки. Но тогда почему не сказать "нет" всем кукам? Это возможно. Но многие сайты не будут работать соответствующим образом без кук, поскольку куки во многих контекстах используются для улучшения функциональности сайтов.

Как информация хранится в куке?

В РНР легко установить или настроить куку с помощью документацияsetcookie. В первом примере мы создадим куку и установим её значение.

Прежде всего нужно дать куке имя. В данном примере используем "HTMLTest". Далее вы устанавливаете значение куки:


	<?php 

	// Установка куки
	setcookie("HTMLTest", "Это тестовая кука");   

	?> 

	

По умолчанию кука хранится, пока не закроется браузер, но это легко изменить, добавив другой параметр - установив срок годности:


	<?php 

	// Установка куки
	setcookie("Name", "C. Wing, time()+3600);   
	setcookie("Interests", "plane spotting", time()+3600); 
	
	?>
	
	

"Time()+3600" специфицирует, что кука должна действовать 3600 секунд (60 минут) с данного момента.

В вышеприведённом примере мы сохранили информацию об имени пользователя и его интересах. Эта информация может пригодиться, например, для настройки сайта под конкретного посетителя.

Как вы запрашиваете значение куки?

Для получения значения куки используется документация$_COOKIE. Например, если вам необходима информация из предыдущего примера, мы делаем так:


	<?php 

	// Запросить значение куки
	$strName = $_COOKIE["Name"];   
	strInterest = $_COOKIE["Interest"];
	 
	// Вывести клиенту
	echo "<p>" . strName . "</p>"   
	echo "<p>Вас интересует . " strInterest . "</p>"
	
	?>
	
	

Кто может читать куки?

По умолчанию куки читаются на том же домене второго уровня (например, html.net), на котором они созданы. Применяя параметры domain и path, вы можете внести ограничения на использование куки, используя такой синтаксис:

	
	setcookie(name, value, expiration time, path, domain);
	
	

Посмотри пример:

	
	<?php
	
	// Установка куки: name, value, expiration time, path, domain
	setcookie("Name", "C. Wing", time()+60*60*24*365, "/tutorials/php/", "www.html.net");   
	?>
	
	

В вышеприведённом примере мы установили куку "Name" со значением "C. Wing." Срок действия куки истекает через год (60 секунд * 60 минут * 24 часов * 365 дней), и она может читаться только сайтами, размещёнными в директории "/tutorials/php/" на (суб-)домене "www.html.net".

Пример куки

Можно попробовать сохранить сэмпл куки на вашем компьютере и потом посмотреть, как она выглядит.

Вот код установки куки:


	<?php 

	// Установит куку
	setcookie("HTMLTest", "Этот текст - кука!", time()+60*60*24, "/tutorials/php/", "www.html.net");   
	 
	// Записать информацию клиенту
	echo $_COOKIE ["HTMLTest"];    

	?>
	
	

Кука размещается на ваш жёсткий диск. В зависимости от вашей операционной системы ваши куки могут сохраняться в разных местах. Когда вы их найдёте, они могут выглядеть примерно так:

From Windows Explorer - folder Cookies

Как видите, кука это нормальный текстовый файл, который можно открыть с помощью Notepad, например. Содержимое куки, которую мы только что создали, может выглядеть примерно так:


	HTMLTest TEXT=This+text+is+in+a+cookie% 21 www.html.net/tutorials/php 0 80973619229399148 4216577264 29399141 * 
	
	

Не будем углубляться в анализ различных кодов, а лишь отметим, что пользователь имеет полный контроль куками на своём компьютере.

В этом уроке мы узнали, что могут куки, но не определили, для чего их можно использовать. Общеизвестно, что куки могут использоваться для нежелательной деятельности. Но в большинстве случаев куки используются для удобства конечных пользователей.

Если вы решите использовать куки на вашем сайте, неплохо сообщить об этом вашим друзьям. Это можно сделать, например, в условиях пользования сайтом или в процессе регистрации.



<< Урок 12: Сессии

Урок 14: Файловая система >>