русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Создание Cookie с помощью JavaScript | Cookie document

Создание Cookie с использованием средств JavaScript основывается на свойстве cookie объекта document и осуществляется с помощью функции setCookie(), которая представлена внешним файлом setcookie.js:

function setCookie(name,value)
{
argv=setCookie.arguments;
argc=setCookie.arguments.length;
expires=(argc>2)?argv[2]:null;
path=(argc>3)?argv[3]:null;
domain=(argc>4)?argv[4]:null;
document.cookie=name+"="+escape(value)+
((expires==null)?"":";expires="+expires.toGMTString())+
((path==null)?"":";path="+path)+
((domain==null)?"":";domain="+domain);
}

Параметрами функции setCookie() являются параметры HTTP-заголовка Set-Cookie, из них обязательными являются два: имя Cookie и его данные. При своем вызове функция setCookie() определяет наличие заданных параметров и их значения и на основании этого формирует Cookie.

Поскольку при запросе браузера данные наборов Cookie, посылаемые серверу, могут содержать символы с кодами ASCII свыше 128, а также символы разделительных знаков и другие управляющие символы, то для правильной передачи по сети необходимо осуществить их url-кодирование. Это осуществляется с помощью встроенной функции JavaScript escape() (для обратного декодирования может быть использована встроенная функция unescape()).

В примере № 4 с помощью функции userReg() осуществляется регистрация пользователя, а с помощью функции createCookie() на основании введенных данных выполняется формирование Cookie:

Пример 4

<HTML>
<HEAD>
<TITLE>Создание Cookie средствами JavaScript</TITLE>
<STYLE>
TD{width:150;font:6mm;color:blue;background:#e0e0ff;border:6 outset blue}
</STYLE>
<SCRIPT SRC="setcookie.js"></SCRIPT>
<SCRIPT>
function userReg() //Регистрация пользователей
{
regW=open("","","width=350, height=100, resizable");
regW.moveTo(200,350);
with (regW.document)
{
write('<HEAD><STYLE>INPUT{position:absolute;left:100;font:5mm;'+ 'color:#900090;background:#FFFFF0}</STYLE></HEAD><BODY>');
write('<FORM NAME="f1">');
write('<P>Имя: <INPUT TYPE=text NAME="txt1">');
write('<P>Данные:<INPUT TYPE=text NAME="txt2">');
write('</FORM></BODY>');
f1.txt1.focus();
}
}
function createCookie() //Запись введенных данных в Cookie
{
if (!regW.document.f1.txt1.value)
{
alert("Имя не введено");
regW.document.f1.txt1.focus();
}
else if (!regW.document.f1.txt2.value)
{
alert("Данные не введены");
regW.document.f1.txt2.focus();
}
else // Если имя и данные введены - создать Cookie
{
user_name=regW.document.f1.txt1.value;
user_data=regW.document.f1.txt2.value+":0";
expireAt=new Date;
if (expireAt.getMonth()==11)
{
expireAt.setYear(expireAt.getYear()+1);
expireAt.setMonth(0);
}
else expireAt.setMonth(expireAt.getMonth()+1);
// expireAt.setTime(expireAt.getTime()+24*60*60*1000);
setCookie(user_name,user_data,expireAt);
regW.close();
}
}
function deleteCookie() // Просмотр и удаление Cokie
{
if (!document.cookie) alert("Cookie отсутствуют!")
else
{
expireAt=new Date();
expireAt.setYear(expireAt.getYear()-1);
window.status=document.cookie;
cookies=document.cookie.split("; "); // Разбиваем на отдельные Cookie
for (i=0; i<cookies.length; i++)
if (confirm("Вы хотите удалить Cookie: \n"+cookies[i]+"?"))
setCookie(cookies[i].split("=")[0],"",expireAt);
}
}
</SCRIPT>
</HEAD>
<BODY onLoad="moveTo(100,100); resizeTo(900,500);"
onMousedown="if(event.button==3) {deleteCookie(); return false}">
<TABLE cellspacing=10>
<TD onClick="userReg()">Регистрация пользователя
<TD onClick="createCookie()">Регистрация закончена
</TABLE>
</BODY>
</HTML>

 

Для осуществления регистрации пользователю необходимо щелкнуть по кнопке "Регистрация пользователя". При этом вызывается функция userReg(), которая создает окно регистрации regW, в котором динамически с помощью метода regW.document.write() формируются форма ("f1"), содержащая поля для ввода имени пользователя ("txt1") и его данных ("txt2"). Для удобства фокус с помощью метода focus() устанавливается на первое поле.

Пользователю после заполнения формы необходимо подтвердить правильность введенных данных, щелкнув по кнопке "Регистрация закончена". При этом вызывается функция createCookie(), которая выполняет следующие действия:

  • проверяет, заполненны ли в окне регистрации поля имени пользователя и его данных, если нет - выводит на экран соответствующее предупреждение, если да - заносит данные из этих полей соответственно в переменные user_name и user_data;
  • с помощью объекта Date занесит в переменную expireAt текущеую дату и текущее время и, увеличивая его на один месяц, устанавливает тем самым срок существования создаваемого Cookie, равным одному месяцу. Другим вариантом является прибавление к текущему времени значения промежутка времени, заданного в миллисекундах. Например, для задания инервала времени, равного одним суткам, можно использовать выражение:
    expireAt.setTime(expireAt.getTime()+24*60*60*1000);
  • с помощю вызова функции setCookie(user_name,user_data,expireAt) формирует набор Cookie, соответствующий введенным пользователем данным.

Если функции userReg() и createCookie() предназначены для регистрации пользователя и вызываются щелчками по соответствующим кнопкам, то функция deleteCookie() предназначена для администрирования Cookie (их просмотра и удаления). Поэтому для вызова этой функции было выбрано одновременное нажатие двух клавиш мышки.

Функция deleteCookie() выполняет следующие действия:

  • проверяет, имееются ли на компьютере Cookie, и, если нет - выводит соответствующее предупреждение на экран;
  • с помощью метода split объекта String преобразует строку, содержащую все Cookie (document.cookie) в массив строк cookies, представлящих отдельные наборы Cookie;
  • в цикле просматривает массив cookies, осуществляя вывод отдельных его элементов с помощью метода confirm() на экран с вопросом, надо ли данный набор Cookie удалять. Если да - администратор подтверждает это, нажимая "OK", при этом данный набор Cookie будет удален путем использования функции setCookie() с такими параметрами:
    • nane - имя удаляемого Cookie;
    • data - пустая строка;
    • expireAt - прошедщее время (срок истечения времени Cookie минус один год).
    Если удалять Cookie не следует - необходимо нажать кнопку "Отмена".

Просмотров: 18394

Вы можете --> Заказать скрипт

Вернуться воглавление


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Полезен материал? Поделись:

Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.