Работа с cookie средствами JavaScript - JavaScript - WEB - Каталог статей - Клан программеров
Понедельник, 12.12.2011, 12:02
Приветствую Вас Гость | RSS
JavaScript
JavaScript [5]
JavaScript — скриптовый язык, чаще всего использующийся при создании сценариев поведения браузера, встраиваемых в веб-страницы. Является одной из реализаций языка ECMAScript.
MIME [2]
Multipurpose Internet Mail Extensions (MIME, Multipurpose Internet Mail Extension - Многоцелевые Расширения Почты Интернета) — стандарт, описывающий передачу различных типов данных по электронной почте, либо спецификация для форматирования не-текстовых (не-ASCII) сообщений, чтобы их можно было пересылать по Internet.
Perl [10]
Perl — аббревиатура, которая расшифровывается как Practical Extraction and Report Language (практический язык извлечений и отчётов, отчего сначала язык назывался PEARL, но затем буква «A» «потерялась»).
PHP [2]
PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста») — скриптовый язык программирования, созданный для генерации HTML-страниц на веб-сервере и работы с базами данных.
Заработок [1]
Материалы о различных видах заработка в сети: "партнёрки", контекстная реклама, рассылки и т.д.
Форма входа
E-mail:
Пароль:
Поиск
Друзья сайта
Статистика
Главная » Статьи

Всего материалов в каталоге:

Работа с cookie средствами JavaScript

Cookie - параметры, которые хранятся на стороне клиента. Перевода этого термина на русский язык пока нет. Дословный перевод - печенье. Произносится - куки. Параметр cookie представляют собой пару name=value. Всякий раз, когда ваш броузер запрашивает документ с веб-сервера, он передает ему Cookie. На основание этих параметров броузер может получить тот или иной HTML-документ. Как использовать Cookie на стороне веб-сервера, будет рассказано в следующих частях книги. Здесь пойдет речь о работе с Cookie в JavaScript. Пока вы должны понять, что такое Cookie, и что эти параметры доступны, как на стороне клиента, так и на стороне веб-сервера. Соответственно добавлять и удалять эти параметры может и сервер, и клиент.

Эти пары можно получить из переменной JavaScript document.cookie. Cookie часто используются для хранения логина и пароля на стороне клиента. Также вы можете хранить и любую другую информацию о клиенте. Перед веб-сайтами с огромным количеством посещений, предоставляющих услуги массового потребления встает задача персонализации веб-сайта. Например, рассмотри поисковую систему типа aport.ru или rambler.ru. Веб-сайты такого рода предоставляют море информации. Помимо поиска там вы можете посмотреть погоду, курс доллара, новости и т.д. Теперь представьте, что у вас подключение к Интернет через телефонную линию со скоростью 1.5Кб в секунду и вам, совершенно, ни к чему все предоставляемые сервисы этой мощной поисковой системы. С помощью Cookie в вашем обозревателе Интернет, можно сохранить настройки, которые позволят сразу загрузить текстовую версию сайта вместо графической, не загружать вам новости и другую информацию, которая вам не нужна.

На основе Cookie построены многие Интернет-магазины, где пользователь сначала складывает товары в корзину, а потом выбирает, что именно он купит, и расплачивается. Информация о товарах в корзине хранится в Cookie. Например, чтобы просмотреть установленные Cookie в Internet Explorer выберите "Свойство обозревателя" в меню "Сервис", затем в разделе "Временные файлы Internet" нажмите кнопку "Настройка" и в появившемся диалоговом окне "Настройка" нажмите кнопку "Просмотр файлов".

Для того чтобы устанавливать, читать и удалять Cookie, я написал ряд функций на языке JavaScript.

<script language="javascript"> <!--//возвращает количество параметровfunction GetCookieCount(){var len = document.cookie.length;var n=0; for(var i=0;i<len;i++) { if(document.cookie.charAt(i) == '=') n++; } return n; }//возвращает значение параметра на основании его имени function GetCookieValueByName(name){ var beg = document.cookie.indexOf(name+"="); if(beg==-1) return false; var end = document.cookie.indexOf(";", beg + name.length); if(end==-1) end = document.cookie.length; return unescape(document.cookie.substring(beg + name.length + 1, end));}//возвращает значение i-го параметраfunction GetCookieValueByIndex(index){var len = document.cookie.length;var i,n=-1; for(i=0;i<len && n!=index;i++) { if(document.cookie.charAt(i) == '=') n++; }var end = document.cookie.indexOf(";", i); if(end==-1) end = document.cookie.length; return unescape(document.cookie.substring(i, end));}//возвращает имя i-го параметраfunction GetCookieNameByIndex(index){var len = document.cookie.length;var i, n=-1; for(i=0;i<len && n!=index-1;i++) { if(document.cookie.charAt(i) == ';') n++; }var end = document.cookie.indexOf("=", i); return unescape(document.cookie.substring(i, end));}//Устанавливает значение параметра.//name и value обязательные параметры этой функции, остальные//могут быть опущены.//Время жизни задается в переменной expires//expires задается в следующем виде Thu, 01-Jan-70 00:00:01 GMT//т.е. День недели, число-месяц-год часы:минуты:секунды//path задет префикс пути HTML-документов, в которых будет доступно//значение параметра name//domain задет доменное имя HTML-документов, в которых будет доступно//значение параметра name//secure - если этот параметр указан, то Cookie будут передаваться //только по защищенному протоколу HTTPSfunction SetCookie(name, value, expires, path, domain, secure){ document.cookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");}//все тоже самое, только время жизни параметра//задается не как абсолютная величина, а как относительная//в неделях относительно текущей датыfunction SetCookieForNWeeks(name, value, weeks, path, domain, secure){var today = new Date();expires = new Date(today.getTime() + weeks*7*24*60*60*1000); document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");}//соответственно в дняхfunction SetCookieForNDays(name, value, days, path, domain, secure){var today = new Date();expires = new Date(today.getTime() + days*24*60*60*1000); document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");}//соответственно в часахfunction SetCookieForNHours(name, value, hours, path, domain, secure){var today = new Date();expires = new Date(today.getTime() + hours*60*60*1000); document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");}//в минутахfunction SetCookieForNMinuts(name, value, minuts, path, domain, secure){var today = new Date();expires = new Date(today.getTime() + minuts*60*1000); document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");}//и, наконец, в секундахfunction SetCookieForNSeconds(name, value, seconds, path, domain, secure){var today = new Date();expires = new Date(today.getTime() + seconds*1000); document.cookie = name + "=" + escape(value) + "; expires=" + expires.toGMTString() + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");}//удаляет параметр Cookie,//установив ему время жизни 1 Января 1970 годаfunction DeleteCookie(name, path, domain){ if(GetCookieByName(name)) document.cookie = name + "=" + ((path) ? "; path=" + path : "") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT"; }//--></script>

Если параметр expires не указан, то cookie хранится в течение одного сеанса, до закрытия броузера. Параметр domain определяет доменное имя веб-сервера, для документов которого будут доступны Cookie. Например, если указано itsoft.ru, то значит всякий раз при запросе документа с сайта itsoft.ru броузер будет передавать на сервер соответствующий параметр Cookie. Если этот параметр не задан, то по умолчанию используется доменное имя сервера, с которого был загружен HTML-документ. Параметр path определяет путь на веб-сервере для HTML-документов, дл которых будут посылаться параметры Cookie. Например, если указано "/guest", то соответствующий параметр будет передан для всех HTML-документов, путь к которым подпадает под маску /guest*, т.е. для /guestbook/index.html, /guestbook/post.html, /guestbook/old/index.html, /guests.html и т.д. Если этот параметр не указан, то значение cookie распространяется только на документы в той же директории, что и документ, в котором было установлено значение cookie.

Ниже приведен код таблицы и HTML-формы для установки параметров Cookie.

<table align="center" width="300" border="0" cellspacing="1" cellpadding="0" bgcolor="#000000"> <tr bgcolor="#CCCCFF" align="center"> <td> Параметр<td> Значение <script language="javascript"> <!--function MakeArray(n){for(var i=0;i<n;i++) this[i] = 0; return this; }var i,n=GetCookieCount();c = new MakeArray(2);c[0]="\"#EEEEEE\"";c[1]="\"#CCCCCC\"";for(i=0;i<n;i++) document.writeln( "<tr bgcolor=" + c[i%2] + "> <td>" + GetCookieNameByIndex(i) + "<td>" + GetCookieValueByIndex(i) );--> </script> </table><form name="SetCookieForm"><table border=0><tr><td>name<td> <input type="text" name="name" size=40><tr><td>value<td> <input type="text" name="value" size=40><tr><td>life time in<td> <input type="text" name="days" size=5> days OR in<input type="text" name="seconds" size=5> seconds<tr><td>path<td> <input type="text" name="path" value="/docs/web" size=40><tr><td>domain<td> <input type="text" name="domain" value="itsoft.ru" size=40></table><input type="button" value="Установить Cookie на энное кол-во дней"onClick="SetCookieForNDays( SetCookieForm.name.value, SetCookieForm.value.value, SetCookieForm.days.value, SetCookieForm.path.value, SetCookieForm.domain.value); window.location.href=window.location.href;"><br><br><input type="button" value="Установить Cookie на энное кол-во секунд"onClick="SetCookieForNSeconds( SetCookieForm.name.value, SetCookieForm.value.value, SetCookieForm.seconds.value, SetCookieForm.path.value, SetCookieForm.domain.value); window.location.href=window.location.href;"> </form>


Внимание! При использовании материалов сайта, активная ссылка обязательна! Код ссылки:
Всего комментариев: 1
0  
1 speptipNogs   (09.01.2011 07:37)
Full Script MFA(Made for AdSense)
Готовое решение для заработка в сети.
The best Profit!

Имя *:
Email:
Код *: