Сайт: 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-эквиваленты, то есть определенные наборы символов или коды, начинающиеся с символа &.
document.cookie = cName + "=" + escape(cValue) +
";expires=31 Dec 2099 23:59:59 UTC;"; }
Для того чтобы прочитать 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?
// установим разделитель параметров
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; }
Так как некоторые люди до сих пор не перешли на новые браузеры, или используют такие браузеры, которые не поддерживают cookie, или поддержка cookie отключена из-за безопасности или каких-то других причин, то для избежания ошибки следует перед использованием cookie проверять браузер на его поддержку. За это отвечает свойство cookieEnabled объекта navigator, которое возвращает true или false.
Теперь просто в каждую функцию в самом начале добавим условие:
if (navigator.cookieEnabled) {
// сама функция
}
Вот и все, теперь функция будет выполняться только при поддержке браузером cookie.
// сама функция
}
P.S.1. Пример можно скачать здесь.
P.S.2. Вот ссылки на статьи о работе с файлами и каталогами на клиентском компьютере:
Создание файлов при помощи JavaScript и VBScript
Работа с каталогами. Часть 1
Работа с каталогами. Часть 2
Чтение информации из текстового файла
Проверка наличия файла
Копирование, перемещение, удаление файлов с клиентского компьютера