Установка и чтение cookies с помощью jQuery и PHP
HTTP - протокол, не имеющий "памяти", то есть каждый запрос, приходящий к серверу рассматривается как отдельный, никак не связанный с другими запросами. Именно поэтому он не может хранить данные сам по себе. Однако эта простота была также и одной из причин его быстрого и широкого распространения в ранние годы развития сети Интернет.
Есть, однако возможность сохранять информацию между запросами. Делается это с помощью Cookies. С их помощью можно эффективно управлять сессиями и сохранять необходимые данные.
Есть два способа работы с Cookies - на стороне сервера (PHP, ASP и т.д.), и на стороне клиента (браузера) - JavaScript. В данной небольшой статье мы посмотрим, как создаются и читаются данные из Cookies как в PHP, так и с помощью JavaScript.
Cookies и PHP
Создание cookies
Для создания cookies в PHP нужно воспользоваться функцией setcookie(). Она принимает ряд параметров (все, за исключением первого параметра необязательны, и могут быть опущены):
setcookie( 'pageVisits', // Имя cookie, обязательный параметр $visited, // The value of the cookie time()+7*24*60*60, // Время, на которое устанавливается cookie - на неделю вперед '/', //Путь к папке, для которой будет доступен cookie 'codeharmony.ru' //Домен, к которому будет привязан файл cookie );
Если передать значение "0" в качестве параметра для срока истечения действия cookie (это значение по умолчанию), - cookie будет уничтожаться при перезапуске браузера. Параметр "/" означает, что cookie будет доступен для всех подпапок на данном домене (в случае необходимости вы можете "привязать" cookie к какой-то отдельной директории, скажем, передав параметр наподобие "/admin/").
Есть еще два дополнительных параметра для данной функции, которые мы не отметили. Они определяются булевыми значениями. Первый из них определяет, будет ли cookie передаваться только по безопасному протоколу HTTPS, а второй - то, что cookie не будут доступны через JavaScript (введено в PHP 5.2).
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
Для большинства практических задач вполне хватит первых четырех параметров, остальные же обычно можно опустить.
Считывание (чтение) cookies
Считывание cookie средствами PHP намного проще. Все cookie, преданные скрипту, доступны через суперглобальный массив $_COOKIE. В нашем случае, чтобы считать значение из cookie, мы должны написать следующее:
$visits = (int)$_COOKIE['pageVisits']+1; echo "Вы посетили этот сайт: ".$visits." times";
Сейчас самое время отметить, что cookies, установленные с помощью функции setcookie() становятся доступны через массив $_COOKIE при следующей загрузке страницы.
Удаление cookies
Для удаления cookies используется та же функция setcookie(), которой в данном случае нужно передать в качестве параметра, определяющего "время жизни" cookie любое время из прошлого.
setcookie( 'pageVisits', $visited, time()-7*24*60*60, // Неделя назад. Файл cookie будет удален '/', 'codeharmony.ru' );
Cookies и jQuery
Для использования cookies с JQuery вам понадобится специальный плагин cookie.
Создание cookies
Создание cookies с помощью плагина достаточно интуитивно понятное:
$(document).ready(function(){ // Установка cookie kittens, исчезнет после перезапуска браузера: $.cookie("kittens","Seven Kittens"); // Установка demoCookie (как в демо): $.cookie("demoCookie",text,{expires: 7, path: '/', domain: 'codeharmony.ru'}); // "text" - переменная, в которую сохраняется значение cookie });
Считывание (чтение) cookies
Считывание еще проще. Нужно просто вызвать функцию $.cookie() с единственным параметром - именем cookie. При этом будет возвращено значение cookie.
$(document).ready(function(){ // Получаем cookie kittens: var str = $.cookie("kittens"); // str теперь содержит "Seven Kittens" });
Удаление cookies
Для удаления cookie снова используем функцию $.cookie(), но передавая "null" как второй параметр.
$(document).ready(function(){ // Удаляем cookie kittens: var str = $.cookie("kittens",null); // cookie kittens больше не существует });
Резюмируя
В этой небольшой статье мы рассмотрели то, как устанавливать и считывать информацию из cookies. Самое время заметить, что в cookies не следует хранить важную информацию вроде паролей, имен пользователей и т.п., так как они передаются как обычные заголовки при каждой загрузке страницы и могут быть легко считаны злоумышленниками. Однако, с надлежащими предосторожностями при помощи этой несложной технологии можно добиться более высокого уровня интерактивности при взаимодействии с посетителями сайта.
По материалам tutorialzine.com
Перевод - Дмитрий
P.S. Присмотритесь к премиум-урокам по различным аспектам сайтостроения, а также к бесплатному курсу по созданию своей CMS-системы на PHP с нуля. Все это поможет вам быстрее и проще освоить JavaScript и PHP:
Понравился материал и хотите отблагодарить?
Просто поделитесь с друзьями и коллегами!
Смотрите также:
PHP: Получение информации об объекте или классе, методах, свойствах и наследовании |
|
Функции обратного вызова, анонимные функции и механизм замыканий Сервис онлайн-записи на собственном Telegram-боте
Попробуйте сервис онлайн-записи VisitTime на основе вашего собственного Telegram-бота:— Разгрузит мастера, специалиста или компанию; — Позволит гибко управлять расписанием и загрузкой; — Разошлет оповещения о новых услугах или акциях; — Позволит принять оплату на карту/кошелек/счет; — Позволит записываться на групповые и персональные посещения; — Поможет получить от клиента отзывы о визите к вам; — Включает в себя сервис чаевых. Для новых пользователей первый месяц бесплатно. Зарегистрироваться в сервисе |
|
Деструктор и копирование объектов с помощью метода __clone() |
|
Эволюция веб-разработчика или Почему фреймворк - это хорошо? |
|
Магические методы в PHP или методы-перехватчики (сеттеры, геттеры и др.) |
|
50 классных сервисов, программ и сайтов для веб-разработчиков |