HTTP является протоколом-бомжом, что значит, что каждый запрос к веб-сайту является автономным, т.е. не связанным с предыдущим запросом, и не хранящим какую либо информацию.
Но эта простота и является также одной из причин его широкого внедрения в Интернете.
Однако, существует способ сохранять информацию между запросами в виде cookies. Таким образом, у вас появится эффективное управление сессиями и данными.
Есть два способа работы с cookies – на стороне сервера (PHP, ASP и т.д.) и на стороне клиента (JavaScript).
В этой статье мы рассмотрим, как можно управлять cookies с помощью PHP и JavaScript.
Cookies и PHP
Запись cookies
Чтобы создать cookie в PHP, вы должны использовать функцию setcookie. Она принимает ряд параметров (все, кроме первого, являются необязательными и могут быть опущены):
setcookie(
'pageVisits', // Имя cookie, обязательно
$visited, // Значение cookie
time()+7*24*60*60, // Срок действия
'/', // Каталог
'demo.tutorialzine.com' // Домен
);
Если вы передаете 0, как срок действия (по умолчанию), cookie будет потерян при перезагрузке браузера. Параметр “/” указывает, что cookie будет доступен для всех директорий домена (при желании, можно связать cookie с одним каталогом, например с /admin/ в качестве параметра).
Есть два дополнительных параметра, которые вы могли бы использовать в функции, но, которые здесь не приводятся. Они могут принимать, только булевые значения — истина или ложь.
Первый означает, что cookie будет передан только через защищенное соединение HTTPS, а второй, что cookie не будет доступен через JavaScript (введено в PHP 5.2).
Для большинства практических целей, вам потребуются только первые четыре параметра, остальные можно пропустить.
Чтение cookies
Чтение cookie с помощью PHP намного проще. Все cookies, которые были переданы скрипту, доступны в суперглобальном массиве $_COOKIE.
В нашем примере, чтобы прочитать cookie, мы написали следующий код:
$visits = (int)$_COOKIE['pageVisits']+1;
echo "You visited this site: ".$visits." times";
Стоит отметить, что запись cookies через setcookie доступна в массиве $ _COOKIE на next page load.
Запомните это.
Удаление cookies
Чтобы удалить cookies, просто используйте функцию setcookie с параметром срока действия прошедшего времени.
setcookie(
'pageVisits',
$visited,
time()-7*24*60*60, //Одна неделя назад и cookie будет удален.
'/',
'demo.tutorialzine.com'
);
Cookies и jQuery
Чтобы использовать cookies с jQuery, вам необходим специальный .
Запись cookies
Запись cookies с плагином Cookie интуитивно понятна:
$(document).ready(function(){
$.cookie("kittens","Seven Kittens");
$.cookie("demoCookie",text,{expires: 7, path: '/', domain: 'demo.tutorialzine.com'});
});
Чтение cookies
Чтение cookie еще проще. Просто вызовите функцию $.cookie() с параметром имени, значение cookie будет возвращено:
$(document).ready(function(){
var str = $.cookie("kittens");
});
Удаление cookies
Чтобы удалить куки, снова используйте функцию $.cookie(), но в качестве второго параметра укажите значение null.
$(document).ready(function(){
var str = $.cookie("kittens",null);
});
Заключение
В этой статье мы рассмотрели создание и чтение данных cookie. Стоит отметить, что Вы не должны хранить в cookies какой-либо конфиденциальной информации, такой как, имена пользователей и пароли, так как они передаются, как обычные заголовки на каждой странице, и могут быть легко прочитаны злоумышленниками.
Однако, благодаря этой простой технологии, при надлежащих мерах предосторожности, вы можете получить большую интерактивность сайта.