Назад в раздел
Cookie-приветствие посетителя по его имени
div.main {margin-left: 20pt; margin-right: 20pt}
"Cookie::приветствие посетителя по его имени"
//////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////// этот текст надо воткнуть в файл cookies.txt
-----------start file cookies.txt----------- //Cookie Welcome Page version 1.1 // // www.subwaydesign.by.ru // ===================================== // Andreev Oleg :: OLEGAtor : olega-tor@mail.ru // Copyright for subway::design(R) and Andreev Oleg //
function SetCookies(VV) { var link; document.cookie = "Secret="+VV+"endOfSecret;expires=Sun, 31-Dec-06 00:00:01 GMT;";
if(VV!=""){link="main.html";}else{link="index.html";}
window.location.href=link; }
var strr;
function DoCookies() {
var str1="Secret="; var str2="";
if (document.cookie.indexOf(str1) !=-1) { start=document.cookie.indexOf(str1); end =document.cookie.indexOf("endOfSecret");
strr=document.cookie.substring(start+str1.length, end);
if(strr==""){str2 = 'Welcome to my sight!<br><br>your name: <input maxlength=15 size=20 name=input>'; } else {str2 ='Welcome again, dear '+strr+', to my sight!<input type=hidden name=input value='+strr+'>';}
} else { str2='Welcome to my sight!<br><br>your name: <input maxlength=15 size=20 name=input>'; }
return str2;
} -----------end of the file cookies.txt-------------
.. .. <form name="Form1" onload="this.innerHTML=DoCookies();">
</form> <a href="" onclick="SetCookies(window.form1.input.value);">enter sight(войти)</a>
<a href="" onclick="SetCookies('')"> forget me(забыть меня)</a>
теперь разберемся, ЧТО мы написали::
1)файл cookies.txt содержит описание 2 функций, работающих с куками::
первая(SetCookies)получает в качестве параметра (параметр VV) текст, в котором должно находится имя посетителя чтобы занести его в куку на его же компьютере. рассмотрим по-подробнее::
var link; - это объявление переменной, которая содержит путь к следующей странице
следующая строка сохраняет куку с ключевым словом Secret(что бы по нему найти конкретно эту куку) и пишет туда имя посетителя, переданное в параметр VV, заканчивая текст словом endOfSecret, что отделить имя от дату смерти куки, которая пишется в самый конец (здесь - конец 2006 года)
далее идет проверка параметра на пустоту :: если он равен пустой строке, то link равен этой же странице(здесь - index.html), если нет, то link равен другой странице (здесь - main.html)
после проверки мы перемещаемся на страницу с адресом link (window.location.href=link;)
Теперь рассмотрим функцию DoCookies():: она не принимает никаких параметров, но делает оч. полезную работу 8). Рассмотрим все строки по отдельности::
1)str1 - это просто константа, которая содержит в себе ключевое слово Secret для того, что бы найти по нему НАШУ куку(можно не использовать эту константу, а просто писать "Secret=" вместо нее) 2)str2 - объявляем переменную для вывода из функции(возвратное значение) 3)Далее идет проверка куки с этого документа, если в ней содержится str1 ("Secret="), то все в порядке - это наша кука! если же нет(такой куки вообще нет! Посетитель первый раз зашел на наш сайт), то мы возвращаем (передаем значение str2, а потом его возвращаем) поле ввода имени и приветствие ______________________________________________________________________________________________________ str2='Welcome to my sight!<br><br>your name: <input class=inputbox maxlength=15 size=20 name=input>'; ______________________________________________________________________________________________________
4) Если кука все-таки есть, мы пишем ее содержимое в переменную (ранее объявленную) strr:: _____________________________________________________________________________ start=document.cookie.indexOf(str1); end =document.cookie.indexOf("endOfSecret"); strr=document.cookie.substring(start+str1.length, end); _____________________________________________________________________________ 5) Но может так оказаться, что там пустое значение. Если это так, то мы просто возвращаем поле ввода имени(как и ранее) 6) Если там что-то написано, то мы возвращаем ему приветствие с его же именем НО!!! также мы передаем скрытое поле со значением его имени(<input type=hidden name=input value=Имя>) сделано это для того, что бы при нажатии ссылки "войти", не возникало никаких проблем (при нажатии на ссылку ВСЕГДА вызывается ф-ция DoCookies с параметром "значение поля с именем input из формы Form1", а если при возврате "правильного" приветствия мы не вернем такое поле с таким именем, то броузер заорет, что такого объекта нету и функция не доарботает до конца и не отшлет нас на main.html!!!!) 7)return str2; - это возврат этого самого текста
Далее я описал код HTML с которым будут взаимодействовать ф-ции из файла cookies.txt, но что бы они взаимодействовали надо их прикрепить к странице:: __________________________________________________________________________________ <script type="text/javascript" language="JavaScript" src="cookie.txt"></script> __________________________________________________________________________________ а засунуть его надо между тегами <head>...</head>
Так, значит файл прикрепили, функции разобрали; осталось только ссылки воткнуть и форму Form1 _________________________________________________________________ <body onload="window.document.all["Form1"].innerHTML=DoCookies();"> ... <form name="form1" > </form> <a href="" onclick="SetCookies(window.Form1.input.value);">enter sight(войти)</a> <a href="" onclick="SetCookies('')"> forget me(забыть меня)</a> _________________________________________________________________ форма сначала пустая, но после загрузки загрузки <BODY> в нее вываливается (innerHTML) то, что наша ф-ция нашла в кеше(в нашей куке) /////////затем идут 2 ссылки::
1)первая запихивает в SetCookies текущее значение поля input в форме и отправляет нас на main.html (или index.html) 2)вторая запихивает в SetCookies пустую строку (а-ля "забудь меня") и ф-ция, соответственно отправляет нас на index.html(а-ля обновление)
Вот, собственно оно и все, как работает можно посмотреть на <a href="http://fotogallery.by.ru"> fotogallery.by.ru </a>
|
Автор: © [subway]design Источник:
http://www.flasher.ru
|
|
|
|