Получение и установка Cookies с помощью jQuery и PHP

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

Однако, существует способ хранения информации между запросами в форме кук (cookies). Таким образом Вы можете управлять эффективно сессиями  и иметь постоянные данные.

Есть два способа работать с "печеньками" - на стороне сервера (PHP, ASP и прочие), и на стороне клиента (JavaScript). В этом небольшом уроке мы рассмотрим как куки считываются и создаются обеими способами.

Cookies и PHP

Установка кук

Для создания "печенька" в PHP Вам необходимо использовать функцию setcookie. Она берет несколько параметров (все кроме первого необязательные и их можно пропустить):

setcookie(
	'pageVisits',				// Имя cookie, обязательно 
	$visited,					// значение cookie
	time()+7*24*60*60,			// Время истечения, в примере на 1 неделю
	'/',						// путь к папке где будет доступна
	'demo.tutorialzine.com'		// Домен к которому кука Привязана
);

Если Вы поставите 0 в строке времени истекания, тогда кука будет потеряна при рестарте браузера. Параметр "/" означает, что кука будет доступна для всех папок домена (Вы можете опционально привязать куку к отдельной папке, примерно так: /admin/ в качестве параметра).

Есть два дополнительных параметра, которые Вы можете передать функции, которые не приведены в примере. Они определяются с помощью логического значения. Первая указывает на то, что кука будет передана только при наличии защищенного соединения HTTPS, и вторая - то, что "печенька" не будет доступна через JavaScript (введена в PHP 5.2).

Для большинства случаев Вам понадобится только первые 4 параметра, указанные в примере.

Чтение cookies

Чтение кук с помощью PHP происходит намного проще. Все "печеньки", переданные скрипту доступны в суперглобальном массиве "$_COOKIE". В нашем примере для чтения куки нам подойдет следующий код:

$visits = (int)$_COOKIE['pageVisits']+1;
echo "You visited this site: ".$visits." times";

Обратите внимание, что cookie заданные с помощью setcookie доступны в массиве только при следующей загрузке.

Удаление cookies

Для удаления просто используйте setcookie и придайте ему время в прошлом в качестве срока истечения.

setcookie(
	'pageVisits',
	$visited,
	time()-7*24*60*60,		// Неделя в прошлом. cookie будет удалена
	'/',
	'demo.tutorialzine.com'
);

Cookies и jQuery

Для использования кук с jQuery Вам понадобится специальный плагин.

Установка

Установка кук с плагином очень интуитивная:

$(document).ready(function(){

	// Задаем kittens cookie, будет потеряна при рестарте браузера:
	$.cookie("kittens","Seven Kittens");

	// Задаем demoCookie (как в демо версии):
	$.cookie("demoCookie",text,{expires: 7, path: '/', domain: 'demo.tutorialzine.com'});

	// "text" переменная которая содержит строку для сохранения
});

Чтение

Чтение кук еще проще. Просто вызовите функцию $.cookie() с единственным параметром - cookie-имя, и значение печенька будет выведено.

$(document).ready(function(){

	// Получаем kittens cookie:
	var str = $.cookie("kittens");

	// str теперь содержит "Seven Kittens"
});

Удаление

Для удаления опять же используйте функцию $.cookie(), но в качестве второго параметра используйте null.

$(document).ready(function(){

	// Удаление kittens cookie:
	var str = $.cookie("kittens",null);

	// Нет больше kittens
});

Заключение

В данном уроке мы рассмотрели два способа установки, чтения и удаления кук. Важно помнить, что куки это не место для хранения важной информации (паролей, логинов и прочего), так как недоброжелатели легко могут этим воспользоваться. Однако, с правильными мерами безопасности, можно достигнуть классной интерактивности благодаря этой прекрасной технологии.

Данный урок подготовлен для вас командой сайта ruseller.com
Источник урока: www.tutorialzine.com
Перевел: Максим Шкурупий
Урок создан: 17 Марта 2010
Просмотров: 35511
Правила перепечатки


5 последних уроков рубрики "Разное"

^ Наверх ^