Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 27.06.2012, 12:47
Аспирант
Отправить личное сообщение для bona Посмотреть профиль Найти все сообщения от bona
 
Регистрация: 13.03.2012
Сообщений: 34

Как сделать,чтобы cookie удалялась через сутки после создания?
Нужно,чтобы cookie удалялась ровно через день после создания. Что нужно присвоить expires для этого?
Ответить с цитированием
  #2 (permalink)  
Старый 27.06.2012, 12:50
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

<!--  = Кукисы = -->
<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>
Ответить с цитированием
  #3 (permalink)  
Старый 27.06.2012, 13:16
Аспирант
Отправить личное сообщение для bona Посмотреть профиль Найти все сообщения от bona
 
Регистрация: 13.03.2012
Сообщений: 34

Deff,поясните пожалуйста,для чего нужны параметры a и b,я как-то не совсем поняла. И ещё: если мне просто нужно проверить есть ли кук и в том случае,если есть вывести окно с определенной надписью,а если нет,то задать кук, можно ли опустить функцию getcookie(a)?
Ответить с цитированием
  #4 (permalink)  
Старый 27.06.2012, 13:37
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

setcookie(Name,value,time);
value = getcookie(Name);
Если кука c таким именем нет => getcookie(Name)==false

Удалить кук = setcookie(Name,value,-1);
Ответить с цитированием
  #5 (permalink)  
Старый 27.06.2012, 14:09
Аспирант
Отправить личное сообщение для bona Посмотреть профиль Найти все сообщения от bona
 
Регистрация: 13.03.2012
Сообщений: 34

Deff,спасибо.
Ответить с цитированием
  #6 (permalink)  
Старый 16.07.2012, 22:29
Аспирант
Отправить личное сообщение для bona Посмотреть профиль Найти все сообщения от bona
 
Регистрация: 13.03.2012
Сообщений: 34

У меня на сайте что-то вроде игры тамагочи,на одной из страниц пользователь вводит код пачки корма и его питомец как бы становится сытым. Мне понадобилось сделать так,чтобы кормить питомца можно было только 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 не исчезает,а когда я попробовала запустить скрипт на своём сайте,а не просто в браузере,то вообще всегда,даже при первом запуске выводится предупреждение о том,что питомец сыт. Подскажите,что нужно исправить,чтобы работало так как надо.
Ответить с цитированием
  #7 (permalink)  
Старый 16.07.2012, 22:37
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

bona,
во первых нельзя ставить проверку
if (document.cookie)
ибо возможно существуют другие куки (не Posted == true), а по делу код работает и все нормально тестил удалял куки смотрел дату удаления - все работает
__________________
Интересно я единственный человек у которого чистая --> ⌨?
Ответить с цитированием
  #8 (permalink)  
Старый 16.07.2012, 23:33
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Воть нормальный скрипт
<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)
Ответить с цитированием
  #9 (permalink)  
Старый 16.07.2012, 23:39
Аватар для Dim@
Профессор
Отправить личное сообщение для Dim@ Посмотреть профиль Найти все сообщения от Dim@
 
Регистрация: 21.04.2012
Сообщений: 951

Deff,
блин а как же читабельность? некоторые (я например) хотят разобраться в коде
__________________
Интересно я единственный человек у которого чистая --> ⌨?
Ответить с цитированием
  #10 (permalink)  
Старый 16.07.2012, 23:58
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Dim@,
Для читабельности есть более полная версия => http://hostjs-mybb2011.narod.ru/js/C...ary_v_011_4.js
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не могу обратиться к элементам div, после того как они получены через $.ajax igsavenko jQuery 1 31.05.2010 16:53
Как передать что-то после location.replace? Nominus umbra Общие вопросы Javascript 26 23.12.2009 20:50
Как установить свойство родительской страницы после запуска 2х последов. popup окон? ksl Events/DOM/Window 10 23.08.2009 13:06
Как запустить скрипт после отработки другого скрипта? roman2 Общие вопросы Javascript 2 10.08.2009 00:23
Как передать элемент в функцию после createElement Oleg NT Общие вопросы Javascript 3 23.06.2008 01:11