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

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

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

Тем не менее, существует способ сохранения информации между запросами в форме «куков». Таким образом, вы можете получить эффективное управление сессиями и ввести постоянную структуру хранения данных.

Существует два способа работы с cookie: со стороны сервера (PHP, ASP и т.д.), и на стороне пользователя (JavaScript). В данном микро-руководстве мы собираемся рассмотреть, как файлы cookie создаются и читаются в обоих случаях, и на PHP, и на JavaScript.

Cookie и PHP

Настройка файлов cookie

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

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

Если значение равно 0, а время истечет (что является режимом по умолчанию), тогда файл cookie при перезапуске браузера будет потерян.

Параметр “/” указывает на то, что он будет доступен для всех каталогов домена (дополнительно, файл cookie можно привязать к одному из каталогов – например, /admin/ — в качестве параметра).

Имеется два дополнительных параметра не представленные здесь, которые можно передать функции. Они задаются с помощью логического значения.

Первый указывает на то, что cookie будет передаваться только через безопасное HTTPS-соединение, а второй, что файлы cookie не будут доступны через JavaScript (применяется в PHP 5.2).

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

Чтение cookie

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

$visits = (int)$_COOKIE['pageVisits']+1;
echo "Вы посетили этот сайт: ".$visits." раз";

Это хороший пример, чтобы обратить внимание: cookie, которые установлены с помощью команды setcookie, доступны в массиве $_COOKIE при загрузке следующей страницы, о которой вы должны знать.

Удаление cookie

Чтобы удалить cookie, просто используйте команду setcookie и задайте ей прошедшее время, в качестве даты окончания срока действия.

setcookie(
    'pageVisits',
    $visited,
    time()-7*24*60*60,		// Срок истек неделю назад. Cookie будут удалены
    '/',
    'demo.tutorialzine.com'
);

Cookie и jQuery

Чтобы использовать cookie с помощью jQuery, вам понадобится специальный Cookie plugin.

Установка cookie

Установка cookie при помощи плагина Cookie вполне понятна:

$(document).ready(function(){

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

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

    // "text" представляет собой переменную, закрепляющую строку для сохранения
});

Чтение cookie

Процесс чтения cookie тут еще проще. Необходимо лишь вызвать функцию $.cookie() с одним параметром имени cookie и значение cookie будет возвращено:

$(document).ready(function(){

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

    // переменная str сейчас содержит "Seven Kittens"
});

Удаление cookie

Чтобы удалить cookie, снова воспользуйтесь функцией $.cookie(), но в качестве второго параметра используйте null:

$(document).ready(function(){

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

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

И в завершение

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

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

Перевод статьи «MicroTut: Getting And Setting Cookies With jQuery & PHP» был подготовлен дружной командой проекта Сайтостроение от А до Я.