Иногда требуется работа с cookie через JavaScript . Например, cookie может быть альтернативным вариантом обмена данными между PHP и JavaScript . Допустим, JavaScript записывает в cookie пользователя его текущее время на компьютере (то есть его местное время), а PHP эти данные считывает и учитывает смещение относител...

Работа с cookie через JavaScript

Иногда требуется работа с cookie через JavaScript. Например, cookie может быть альтернативным вариантом обмена данными между PHP и JavaScript. Допустим, JavaScript записывает в cookie пользователя его текущее время на компьютере (то есть его местное время), а PHP эти данные считывает и учитывает смещение относительно серверного времени. А теперь давайте разберём, как работать с cookie через JavaScript.

Единственное, что есть в JavaScript для работы с cookie - это свойство cookie объекта document:

<script type="text/javascript">
  alert(document.cookie);
</script>

В результате запуска этого кода выведутся все cookie от данного сайта, причём в определённом формате. Выглядит это примерно так: "name=123; login=456". На что здесь стоит обратить внимание? На то, что все cookie имеют, разумеется, имя и значение, а сами cookie разделены друг с другом точкой с запятой и пробелом.

Зная этот формат, Вы можете легко вытащить значение нужной переменной.

Чтобы добавить через JavaScript ещё одну переменную, надо написать следующий код:

<script type="text/javascript">
  document.cookie = "new=5";
</script>

Обратите внимание, что именно "=", а не "+=". В данном случае, Вы не стираете все существующие cookie, а добавляете новую переменную.

Что касается удаления cookie, то здесь можно использовать тот факт, что имеется возможность указать время жизни cookie. И если указать, что она должна была закончиться год назад, то cookie будет немедленно удалена.

Чтобы у Вас было полное представления о работе с cookie через JavaScript, показываю код всех 3 функций для управления cookie, а также пример их использования:

<script type="text/javascript">
  function setCookie(name, value) {
    document.cookie = name + "=" + value;
  }
  function getCookie(name) {
    var r = document.cookie.match("(^|;) ?" + name + "=([^;]*)(;|$)");
    if (r) return r[2];
    else return "";
  }
  function deleteCookie(name) {
    var date = new Date(); // Берём текущую дату
    date.setTime(date.getTime() - 1); // Возвращаемся в "прошлое"
    document.cookie = name += "=; expires=" + date.toGMTString(); // Устанавливаем cookie пустое значение и срок действия до прошедшего уже времени
  }
  setCookie("firstname", "Вася"); // Устанавливаем cookie
  alert(getCookie("firstname")); // Выводим cookie
  deleteCookie("firstname"); // Удаляем cookie
  alert(getCookie("firstname")); // Убеждаемся, что ничего не осталось
</script>

Вот такую простейшую библиотеку Вы можете использовать при работе с cookie через JavaScript.