Получение и установка 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
Просмотров: 34705
Правила перепечатки


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

или авторизуйтесь, чтобы добавлять комментарии, оценивать уроки и сохранять их в личном кабинете
  • 17 Марта 2010 18:15
    Илларион
    Скрипт интересный, спасиБо. Но если честно, я не вижу большого смысла в данном скрипте. Если можете объяснить, как и где его можно применить, то объясните, плиз. Если нет...
    • 1 Июля 2011 19:28
      gufon
      Ооооо, это очень полезная вещь, без нее мне не обойтись, мне нужно проверять авторизован ли пользователь или нет, по нажитию на кнопку(я коменты делаю), а дергать сервер по пустякам не вариант. так вот. без нее мне не обойтись1
  • 17 Марта 2010 21:53
    Hotvizar
    Интересный урок. Спасибо. Илларион, куки очень нужны, например при регистрации пользователя.
  • 18 Марта 2010 00:26
    Magnum
    Поддержу Иллариона - зачем через жукери (да еще с плагином) ?
  • 27 Марта 2010 01:22
    VALERI
    YO! Круто. Можно защитить таким методом кеширование страниц. Но в ОПЕРА не пробовал.
  • 4 Апреля 2010 23:40
    Espando
    to Илларион (2010-03-17 18:15:05) ну например для запоминания положения на странице активных виджетов - прям как в гугле =) или как на главной странице tutsplus.com
  • 5 Января 2011 10:35
    gerg007
    Спасибо большое за уроки! Но меня интересует как этот скрипт может работать на localhost?! $.cookie('demoCookie',text,{expires: 7, path: '/', domain: 'localhost'}); не работает)
  • 27 Мая 2013 08:37
    borodindmitry
    Огромное спасибо! С этими "печеньками" всегда проблемы были. Не понимал их. А понятного урока нигде не находил. А тут всё коротко и с расстановкой. Огромное спасибо!
^ Наверх ^