Как сделать,чтобы cookie удалялась через сутки после создания?
Нужно,чтобы cookie удалялась ровно через день после создания. Что нужно присвоить expires для этого?
|
<!-- = Кукисы = --> <script type="text/javascript"> function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;} function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;} setcookie('Posted',true,24*60*60*1000) //Кук на сутки </script> |
Deff,поясните пожалуйста,для чего нужны параметры a и b,я как-то не совсем поняла. И ещё: если мне просто нужно проверить есть ли кук и в том случае,если есть вывести окно с определенной надписью,а если нет,то задать кук, можно ли опустить функцию getcookie(a)?
|
setcookie(Name,value,time);
value = getcookie(Name); Если кука c таким именем нет => getcookie(Name)==false Удалить кук = setcookie(Name,value,-1); |
Deff,спасибо.
|
У меня на сайте что-то вроде игры тамагочи,на одной из страниц пользователь вводит код пачки корма и его питомец как бы становится сытым. Мне понадобилось сделать так,чтобы кормить питомца можно было только 1 раз в день и я решила использовать cookie. В том случае,если cookie есть выводится предупреждение о том,что питомец сыт,иначе происходит процедура кормления. Я соединила свой скрипт со скриптом,который мне дал Deff. Получилось следующее:
<script type="text/javascript"> function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;} function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;} if(document.cookie){ alert('Ваш питомец уже сыт.Повторное кормление понадобится завтра.'); } else{ var korm=prompt('Напишите уникальный код пачки корма',''); if( (korm=='2517') || (korm=='0026') || (korm=='4375') || (korm=='0516') || (korm=='1394') || (korm=='1615') ){ alert('Ваш питомец успешно накормлен'); setcookie('Posted',true,24*60*60*1000);} else if( (korm=='6784') || (korm=='1234') || (korm=='0102') ){ alert('Ваш питомец успешно накормлен. Ваша пачка закончилась,приобретите следующую в магазине') setcookie('Posted',true,24*60*60*1000);} else{ alert('Код неверен. Кормление не удалось')} } </script> Однако работает скрипт совершенно некорректно:через сутки cookie не исчезает,а когда я попробовала запустить скрипт на своём сайте,а не просто в браузере,то вообще всегда,даже при первом запуске выводится предупреждение о том,что питомец сыт. Подскажите,что нужно исправить,чтобы работало так как надо. |
bona,
во первых нельзя ставить проверку if (document.cookie)ибо возможно существуют другие куки (не Posted == true), а по делу код работает и все нормально тестил удалял куки смотрел дату удаления - все работает |
Воть нормальный скрипт
<script type="text/javascript"> function setcookie(a,b,c) {if(c){var d = new Date();d.setTime(d.getTime()+c);}if(a && b) document.cookie = a+'='+b+(c ? '; expires='+d.toUTCString() : '');else return false;} function getcookie(a) {var b = new RegExp(a+'=([^;]){1,}');var c = b.exec(document.cookie);if(c) c = c[0].split('=');else return false;return c[1] ? c[1] : false;} </script> Куки на сутки setcookie(a,b,1*3600*24*1000) Проверить существование if(getcookie('Name')) Удалить setcookie(a,b,-1) |
Deff,
блин а как же читабельность? некоторые (я например) хотят разобраться в коде:) |
Dim@,
Для читабельности есть более полная версия => http://hostjs-mybb2011.narod.ru/js/C...ary_v_011_4.js |
Часовой пояс GMT +3, время: 03:35. |