» Навигация
- - - - - - - - - - - - - - - -
  » Наша кнопка
- - - - - - - - - - - - - - - -
   » Использование cookie
 
Автор: Алексей Голубев

Сайт: http://www.frnet.narod.ru/

На сайте имеется целый цикл статей по созданию файлов на клиентском компьютере при помощи ActiveX. Использовать эти методы достаточно удобно и просто, однако не всегда приемлемо, например, для хранения числа последнего посещения пользователем сайта можно использовать что-нибудь попроще, не так ли? Этим средством и является cookie.

1. Из чего состоит cookie?

Cookie состоит из пар следующего типа: name=value. Эти пары вы задаете при создании cookie, однако есть некоторые зарезервированные параметры. Они представлены в таблице:

Параметр За что отвечает
expires=date; Параметр, отвечающий за дату удаления cookie. Если не установить дату, то cookie будет удален при выходе из браузера. Установив дату в прошлом, вы уничтожите cookie. Cookie будет храниться до указанной даты в будущем.
domain=domainname; Установите этот параметр, если cookie будет использоваться несколькими сайтами с разными доменами.
path=path; Данный параметр указывает на то, что только страницы, хранящиеся в указанном каталоге вашего сайта могут использовать данный cookie. Например, если вы установите /somepath, то все страницы вашего сайта, содержащиеся в каталоге /somepath, а так же в его подкаталогах, будут иметь доступ к cookie, а остальные – нет.
secure; Этот параметр не позволит никому прочитать ваш cookie, кроме вас, разумеется. Создает защиту от тех, кто любит красть cookie с паролями и другой конфиденциальной информацией.

В файле cookie можно хранить до 20 пар name=value.

2. Как это использовать?

Для хранения cookie используется соответствующее свойство объекта document. Используется оно следующим образом:

document.cookie [= str];
Здесь str – строка, в которой по очереди записаны через точку с запятой пары name=value.

3. Пример функций работы с cookie.

Рассмотрим функцию создания cookie.

function SetCookie(cName, cValue,) {
document.cookie = cName + "=" + escape(cValue) +
";expires=31 Dec 2099 23:59:59 UTC;"; }
Функция создает cookie, содержащий два параметра: пользовательский (параметр функции cName) со значением cValue (второй параметр функции) и параметром expires, указывающим на то, что cookie должен быть удален в конце XXI века. Для того, чтобы обезопасить строку cValue от нежелательных символов заменим ее на HTML-эквиваленты, то есть определенные наборы символов или коды, начинающиеся с символа &.

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

function GetCookie(sName) {
// установим разделитель параметров
var aCookie = document.cookie.split("; ");
// цикл, который будет длиться, пока не закончатся параметры
for (var i=0; i < aCookie.length; i++) {
// установим разделитель name/value
var aCrumb = aCookie[i].split("=");
// проверим, тот ли параметр мы нашли
if (sName == aCrumb[0])
// если да, то возвращаем его как результат функции, предварительно заменив все HTML последовательности на символы
return unescape(aCrumb[1]); }
// если не нашли нужный параметр, то возвращаем null
return null; }
4. А если браузер не поддерживает cookie?

Так как некоторые люди до сих пор не перешли на новые браузеры, или используют такие браузеры, которые не поддерживают cookie, или поддержка cookie отключена из-за безопасности или каких-то других причин, то для избежания ошибки следует перед использованием cookie проверять браузер на его поддержку. За это отвечает свойство cookieEnabled объекта navigator, которое возвращает true или false.

Теперь просто в каждую функцию в самом начале добавим условие:

if (navigator.cookieEnabled) {
// сама функция
}
Вот и все, теперь функция будет выполняться только при поддержке браузером cookie.

P.S.1. Пример можно скачать здесь.

P.S.2. Вот ссылки на статьи о работе с файлами и каталогами на клиентском компьютере:
Создание файлов при помощи JavaScript и VBScript
Работа с каталогами. Часть 1
Работа с каталогами. Часть 2
Чтение информации из текстового файла
Проверка наличия файла
Копирование, перемещение, удаление файлов с клиентского компьютера

 

  » Друзья сайта
- - - - - - - - - - - - - - - -
  » Разное
- - - - - - - - - - - - - - - -
  » Счетчики
- - - - - - - - - - - - - - - -
  Дизайнер и ведущий проекта: Голубев Алексей
Copyright Alexei Golubev © 2004
Hosted by uCoz