Плагин для работы с куками
При создании различных веб приложений одним из популярных методов хранения информации являются куки. Плагин jQuery jCookies существенно облегчает работу с ними. Можно работать с различными данными: строками, массивами, объектами.
В данном уроке демонстрируются методы для хранения и получения информации с помощью jCookies. Также будет показано, как получить информацию на серверной стороне с помощью кода C# и PHP.
Создаем куки
Чтобы создать куки надо вызвать метод jCookies
с двумя параметрами - именем и значением куки:
$.jCookies({ name : 'Listening To', value : { album : 'The Go Round', artist : 'Inf', rating : 9, thumbs_up : true} });
Так можно сохранять любые данные. По умолчанию куки имеют срок хранения 27 дней. Можно изменить срок хранения используя следующие свойства для задания времени: seconds, minutes, hours, days
. Значения данных свойств должны быть числами, иначе они будут игнорироваться.
$.jCookies({ name : 'User', value : { username : 'Bob' , level : 5 }, minutes : 60 });
Примечание: если вы планируете получать данные на серверной стороне через ASP.net используйте насколько возможно простую структуру данных куки.
Получаем данные куки
Для получения данных нужно вызвать метод jCookies
с одной опцией get:
var listening_to = $.jCookies({ get : 'Listening To' }); // ответ: { album : 'The Go Round', artist : 'Inf', rating : 9, thumbs_up : true} var rutabaga = $.jCookies({ get : 'Rutabaga' }); // ответ: false
Данные возвращаются в том же виде, что и сохранялись. Если нет куки с заданным именем, или истек срок его хранения, или в случае другой ошибки возвращается значение false. Если нужно посмотреть, что за ошибка произошла, поможет опция error. По умолчанию она имеет значение false.
var rutabaga = $.jCookies({ get : 'Rutabaga', error : true }); /* ответ: Error : { arguments : undefined, message : "Invalid base64 data", stack : "—", type : undefined } */
В примере приводится ответ при наличии ошибки в браузере Chrome. В зависмости от браузера ответ может немного изменяться.
Удаляем куки
Для удаления куки нужно вызвать метод jCookies
с одним параметром erase:
var erased_listening_to = $.jCookies({ erase : 'Listening To' }); // ответ: true var rutabaga = $.jCookies({ erase : 'Rutabaga' }); // овтет: false
Если куки с заданным именем существовало в системе и было удалено, возвращается true. в другом случае возвращается false.
Серверная сторона
Работа с куками, созданными jCookies, требует на серверной стороне декодирования данных Base64 и последующего декодирования данных JSON.
Устанавливаем куки в JavaScript
$.jCookies({name:'user',value:{name:'brian',level:'awesome'}}); // ответ: true
Получаем куки в PHP
<?php print_r(json_decode(base64_decode($_COOKIE['user'], true))); ?> /* ответ: stdClass Object ( [name] => brian [level] => awesome ) */
В PHP работа с куками, созданными jCookies, организуется достаточно просто. Как в выше приведенном примере.
Получаем куки в C#
Dictionary<string,object> user = new JavaScriptSerializer().Deserialize<Dictionary<string,object>> (Encoding.UTF8.GetString( Convert.FromBase64String(Page.Request.Cookies["user"].Value) )); Page.Response.Write("user : name = " + (string) user["name"]);
В C# процесс несколько сложнее. Нужно установить тип каждой части данных, прежде чем их можно будет использовать. В примере используется Dictionary<string,object>. Мы устанавливаем тип свойства string, чтобы иметь к нему доступ, и значение object для дальнейшего преобразования. Если вам известен точный формат данных куки, то лучше создать собственный класс для их хранения.
Источник: http://feedproxy.google.com/~r/ruseller/CdHX/~3/hGNu1A_UAak/lessons.php
Дайджест новых статей по интернет-маркетингу на ваш email
Новые статьи и публикации
- 2024-04-17 » 23 сервиса для эффективного экспресс-аудита любого сайта
- 2024-04-08 » Яндекс переходит на новую версию Wordstat
- 2024-04-08 » Яндекс интегрировал в свой облачный сервис эмпатичную нейросеть
- 2024-04-08 » Новая версия нейросети Claude превзошла по мощности аналоги Google и OpenAI
- 2024-04-08 » Как пользоваться GPT 4 и Claude бесплатно и без VPN
- 2024-03-13 » Стратегии SEO на 2024 год
- 2024-03-13 » Как использовать анимацию с помощью JavaScript-библиотеки GSAP
- 2024-03-13 » Использование GSAP 3 для веб-анимации
- 2024-03-13 » Cогласование топографической съёмки с эксплуатирующими организациями
- 2024-02-19 » Теряются лиды? Как настроить сквозную аналитику
- 2024-02-17 » Мерч и IT: на что обратить внимание в 2024 году
- 2024-02-16 » Копируем с RSync: основные примеры синхронизации файлов
- 2024-02-15 » Лучшие noCode AI платформы для создания диалоговых ботов
- 2024-02-14 » Факторы ранжирования Google 2024 — исследование Semrush
- 2024-02-12 » Перенос сайта на другой хостинг
- 2024-02-05 » В России сформирован реестр хостинг-провайдеров
- 2024-02-04 » Использование SSH для подключения к удаленному серверу Ubuntu
- 2024-02-03 » Подключаемся к серверу за NAT при помощи туннеля SSH. Простая и понятная инструкция
- 2024-02-02 » Настройка CI/CD для Gitlab-репозитория: схемы и гайд по шагам
- 2024-02-01 » GitLab CI Pipeline. Запуск сценария через SSH на удаленном сервере
- 2024-01-29 » Introduction to GitLab’s CI/CD for Continuous Deployments
- 2024-01-26 » Настройка GitLab CI/CD
- 2024-01-25 » Установка shell gitlab runner
- 2024-01-25 » Установка и регистрация gitlab-runner в docker контейнере
- 2024-01-25 » Переменные Gitlab-Ci
- 2024-01-25 » Настройка CI/CD в GitLab для синхронизации проекта с веб-серверами
- 2024-01-25 » Копирование файлов scp
- 2024-01-21 » Бездепозитные бонусы от казино: обзор условий и правил использования
- 2024-01-18 » Современная обработка ошибок в PHP
- 2024-01-18 » Пример шаблона проектирования MVC в PHP
Если ты рождён без крыльев, не мешай им расти. (Коко Шанель / ЖИТЕЙСКАЯ МУДРОСТЬ ) |
Мы создаем сайты, которые работают! Профессионально обслуживаем и продвигаем их , а также по всей России и ближнему зарубежью с 2006 года!
Как мы работаем
Заявка
Позвоните или оставьте заявку на сайте.
Консультация
Обсуждаем что именно Вам нужно и помогаем определить как это лучше сделать!
Договор
Заключаем договор на оказание услуг, в котором прописаны условия и обязанности обеих сторон.
Выполнение работ
Непосредственно оказание требующихся услуг и работ по вашему заданию.
Поддержка
Сдача выполненых работ, последующие корректировки и поддержка при необходимости.