[Ликбез]

Форма входа
Логин:
Пароль:

Меню сайта


Скрипты и коды для юкоз - Форум аццкого кодера » Если вы пришли за помощью, то Вам сюда... » Как работать с куками. cookies.

Как работать с куками. cookies.
[1] LuCiFеr [28.05.2011, 08:02]
Code
var expDays = 1;

function GetCookie (name) {   
var arg = name + "=";   
var alen = arg.length;   
var clen = document.cookie.length;   
var i = 0;   
while (i < clen) {   
var j = i + alen;   
if (document.cookie.substring(i, j) == arg)   
return getCookieVal (j);   
i = document.cookie.indexOf(" ", i) + 1;   
if (i == 0) break;   
}   
return null;
}
function SetCookie (name, value) {   
var argv = SetCookie.arguments;   
var argc = SetCookie.arguments.length;   
var expires = (argc > 2) ? argv[2] : null;   
var path = (argc > 3) ? argv[3] : null;   
var domain = (argc > 4) ? argv[4] : null;   
var secure = (argc > 5) ? argv[5] : false;   
document.cookie = name + "=" + escape (value) +   
((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +   
((path == null) ? "" : ("; path=" + path)) +   
((domain == null) ? "" : ("; domain=" + domain)) +   
((secure == true) ? "; secure" : "");
}
function DeleteCookie (name) {   
var exp = new Date();   
exp.setTime (exp.getTime() - 1);   
var cval = GetCookie (name);   
document.cookie = name + "=" + cval + "; expires=" + exp.toGMTString();
}
var exp = new Date();   
exp.setTime(exp.getTime() + (expDays*24*60*60*1000));
function amt(){
var kulda = GetCookie('kulda')
if(kulda == null) {
SetCookie('kulda','1')
return 1
}
else {
var newkulda = parseInt(kulda) + 1;
DeleteCookie('kulda')
SetCookie('kulda',newkulda,exp)
return kulda
}
}
function getCookieVal(offset) {
var endstr = document.cookie.indexOf (";", offset);
if (endstr == -1)
endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function checkkulda() {
var kulda = GetCookie('kulda');
if (kulda == null) {
kulda=1;
SetCookie('kulda', kulda, exp);

document.getElementById('magicnew').style.display = 'block';
document.getElementById('magicwas').style.display = 'none';
}
else {
kulda++;
SetCookie('kulda', kulda, exp);
}
}


Code
<a href="javascript://" onclick="checkkulda();">тык</a>
<div id="magicwas">111111</div>
<div id="magicnew" style="display:none;">22222</div>


Сообщение отредактировал LuCiFеr - Суббота, 28.05.2011, 08:04
[2] likbezz [28.05.2011, 08:50]
На документ реди ...
Code
<script type="text/javascript" src="http://likbezz.ru/_theme/_script/_ext/_cookie.js"></script>
<script type="text/javascript">
(function(){$(function(){
var cookie=getCookie('kulda');
if (cookie&&cookie.indexOf('isShow')>-1){
document.getElementById('magicnew').style.display='block';
}else{document.getElementById('magicwas').style.display='block';setCookie('kulda','isShow',1);}
alert(cookie);
});})();
</script>


Code
<div style="display:none;" id="magicnew">11111</div>
<div style="display:none;" id="magicwas">22222</div>
<noscript>Включи подержку JS и Cookie</noscript>


Пример (кука устанавливается на 1 минуту, примерно)
...
[3] likbezz [28.05.2011, 09:02]
Вот ещё вариант .... С проверкой, включены ли куки ...

Code
<script type="text/javascript" src="http://likbezz.ru/_theme/_script/_ext/_cookie.js"></script>
<script type="text/javascript">
function checkkulda(){
if(navigator.cookieEnabled){
var cookie=getCookie('kulda');
if(cookie&&cookie.indexOf('isShow')>-1){document.getElementById('magicnew').style.display='block';
}else{document.getElementById('magicwas').style.display='block';setCookie('kulda','isShow',0.0006);}
}else{alert('Включи подержку Cookie');}
};
</script>


Code
<div style="display:none;" id="magicnew">11111</div>
<div style="display:none;" id="magicwas">22222</div>
<script type="text/javascript">checkkulda();</script>
<noscript>Включи подержку JS и Cookie</noscript>


Пример v2 (кука устанавливается на 1 минуту, примерно)
...

Код тестовой страницы:

...
[4] Tonich [21.12.2012, 11:51]
Уважаемый likbezz, скажите как сделать проверку куки на наличие
Допустим кука устанавливается другим скриптом...Имя куки "qwerty"
Если кука есть, то ссылке с id="qwerty_link" ставим href="qwerty_page", а если ссылки нет, то ставим href="#"
[5] Tonich [21.12.2012, 11:57]
Проверка осуществляется по имени куки, что-то я с утра сижу и ничего не получается
[6] likbezz [21.12.2012, 11:58]
Tonich,
Уважаемый likbezz, скажите как сделать проверку куки на наличие
Допустим кука устанавливается другим скриптом...Имя куки "qwerty"

Так, примерно:
Code
<script type="text/javascript" src="http://likbezz.ru/_theme/_script/_ext/_cookie.js"></script>   
<script type="text/javascript">
if(getCookie('qwerty')){
    alert('Кука есть!');
    document.getElementById('qwerty_link').href='qwerty_page';
}
</script>
[7] Tonich [21.12.2012, 13:03]
likbezz, Спасибо большое

Добавлено (21.12.2012, 13:00)
---------------------------------------------
likbezz, А если нужно добавить ещё и проверку узла?

Добавлено (21.12.2012, 13:03)
---------------------------------------------
Или проверку значения куки !=undefined

[8] likbezz [21.12.2012, 13:19]
Tonich,
likbezz, А если нужно добавить ещё и проверку узла?

Какого узла?
Или проверку значения куки !=undefined

? а зачем?
Если её нет то условие не выполнится.
[9] Tonich [21.12.2012, 14:07]
likbezz, дело в том, что куку на моём сайте записывает яндекс, если пользователь залогинился на почте, так вот при выходе с почты кука остаётся, а значение её становится undefined

Добавлено (21.12.2012, 13:24)
---------------------------------------------
а мне надо чтобы если куки нет или её значение = undefined , при нажатии на ссылку всплывала форма авторизации, иначе же просто ссылка на почту

Добавлено (21.12.2012, 14:07)
---------------------------------------------
я был не прав, там всё по другому, куку яндекс пишет себе, соответственно придётся придумывать что-то неординарное...
Объясню зачем загоняюсь... У яндекса есть сервис "почта для домена", который я успешно подключил...
Также у них взял форму авторизации прямо со страницы сайта, а вот теперь сижу и туплю как сделать так, чтобы при нажатии на ссылку, в случае если пользователь не авторизован вылазила эта форма, а в случае если авторизован , то осуществлялся прямой переход на mail.mydomain.ru...

Так, что спасибо Likbezz, а я наверное буду копать яндекс api, чтобы при авторизации сервер яндекса мог ответить моему, но это уже совсем другая история smile

[10] likbezz [21.12.2012, 14:40]
Tonich,
а вот теперь сижу и туплю как сделать так, чтобы при нажатии на ссылку, в случае если пользователь не авторизован вылазила эта форма, а в случае если авторизован , то осуществлялся прямой переход на mail.mydomain.ru...

?
Что-то ты, по моему, перемудрил ...
Если юзер НЕ авторизован на почте, его по ссылке mail.mydomain.ru так и так перекинет на странице авторизации, а если авторизован - то сразу на почту..
Нет?
[11] Tonich [21.12.2012, 15:03]
Так то оно так, просто хотел форму авторизации в меню сайта вставить, но если юзер уже авторизовался зачем ему эту форму показывать...
[12] likbezz [21.12.2012, 15:07]
Tonich,
Так то оно так, просто хотел форму авторизации в меню сайта вставить, но если юзер уже авторизовался зачем ему эту форму показывать...

- тогда через апи смотреть нужно.
Вполне вероятно там есть возможность узнать статус авторизации.


Полная версия сайта