Фильтр по:
  

  • Страница 1 из 1
  • 1
Модератор форума: Admin, Cибиря4ка, Komoff, Diana  
Как работать с куками. cookies.
Дата: Суббота, 28.05.2011, 08:02 |
LuCiFеr
Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline


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
 
Дата: Суббота, 28.05.2011, 08:50 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


На документ реди ...
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 минуту, примерно)
...


 
Дата: Суббота, 28.05.2011, 09:02 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Вот ещё вариант .... С проверкой, включены ли куки ...

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 минуту, примерно)
...

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

...


 
Дата: Пятница, 21.12.2012, 11:51 |
Группа: Гости





Уважаемый likbezz, скажите как сделать проверку куки на наличие
Допустим кука устанавливается другим скриптом...Имя куки "qwerty"
Если кука есть, то ссылке с id="qwerty_link" ставим href="qwerty_page", а если ссылки нет, то ставим href="#"


 
Дата: Пятница, 21.12.2012, 11:57 |
Tonich
Рядовой
Группа: Проверенные
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline


Проверка осуществляется по имени куки, что-то я с утра сижу и ничего не получается

 
Дата: Пятница, 21.12.2012, 11:58 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


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>


 
Дата: Пятница, 21.12.2012, 13:03 |
Tonich
Рядовой
Группа: Проверенные
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline


likbezz, Спасибо большое

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

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

 
Дата: Пятница, 21.12.2012, 13:19 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Tonich,
likbezz, А если нужно добавить ещё и проверку узла?

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

? а зачем?
Если её нет то условие не выполнится.


 
Дата: Пятница, 21.12.2012, 14:07 |
Tonich
Рядовой
Группа: Проверенные
Сообщений: 8
Награды: 0
Репутация: 0
Статус: Offline


likbezz, дело в том, что куку на моём сайте записывает яндекс, если пользователь залогинился на почте, так вот при выходе с почты кука остаётся, а значение её становится undefined

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

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

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

 
Дата: Пятница, 21.12.2012, 14:40 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


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

?
Что-то ты, по моему, перемудрил ...
Если юзер НЕ авторизован на почте, его по ссылке mail.mydomain.ru так и так перекинет на странице авторизации, а если авторизован - то сразу на почту..
Нет?


 
Дата: Пятница, 21.12.2012, 15:03 |
Группа: Гости





Так то оно так, просто хотел форму авторизации в меню сайта вставить, но если юзер уже авторизовался зачем ему эту форму показывать...

 
Дата: Пятница, 21.12.2012, 15:07 |
likbezz
Аццкий кодер
Группа: Администраторы
Сообщений: 9093
Награды: 23
Репутация: 459
Статус: Unknown


Tonich,
Так то оно так, просто хотел форму авторизации в меню сайта вставить, но если юзер уже авторизовался зачем ему эту форму показывать...

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


 
  • Страница 1 из 1
  • 1
Поиск:


Мобильная версия