Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > время жизни Кука


Автор: Gold Dragon 16.9.2006, 08:47
Вопрос такой.. Как мне определить сколько осталось жить переменной в куке и как сделать на странице счётчик, который бы отсчитывал это время?

Автор: Eugene_Bond 16.9.2006, 09:53
Никак.
Куки живут в браузере внутри.
Даже жабаскрипт знает только есть куки или нет: alert(document.cookie);


Автор: -=Ustas=- 16.9.2006, 14:20
Цитата(Gold Dragon @  16.9.2006,  08:47 Найти цитируемый пост)
который бы отсчитывал это время? 

Тут я вижу выход такой, ставим куку на определенное время, и это же самое значение определенного времени пишем также в куку. Теперь ты будешь знать, сколько ей жить осталось.

Автор: Gold Dragon 17.9.2006, 07:32
почему то я не очень надеялся на решение smile

ЗЫ
Но ведь браузер как-то видит конец жизни переменной в куке.. может и программно можно вытащить?

Автор: -=Ustas=- 18.9.2006, 09:30
Цитата(Gold Dragon @  17.9.2006,  07:32 Найти цитируемый пост)
может и программно можно вытащить? 

Не знаю, я как  то не пробовал. надо поискать... smile

Автор: Gold Dragon 18.9.2006, 12:02
-=Ustas=-, поищи, а вдруг что найдёшь

Автор: -=Ustas=- 18.9.2006, 13:22
Искал, перечитал спецификацию HTTP, и пришел к выводу что это без вариантов smile Остается только одно, засовывать в куку переменую с таким же именем, но с префиксом time_ и записывать в нее время. Больше выхода я не вижу.

Автор: Gold Dragon 18.9.2006, 19:23
то есть это будет примерно так...
Код

// где-то я устанавливаю КУК
setcookie ("index", "A", time()+60*5);
// и ещё один клон
setcookie ("index_d", date("Y-m-d G:i:s"), time()+60*5);


затем где-то я получаю оставшееся время 
Код

// получаю ДатаВремя
$data = (isset($_COOKIE['index_d'])) ? $_COOKIE['index_d'] :  '';
// затем получаю разницу
if (data!=''){
   // вычисляю разницу
}

примерно так?

PS
я знаю что вопрос не потеме и где-то уже был... как вычислить разницу?


PSS 
вот чёрт.. браузер ведь показывает отсаток жизни КУКа... по крайней мере Опера... или он просто уже работает с файлами?

Автор: -=Ustas=- 19.9.2006, 09:39
Gold Dragon, примерно вот так:
Код

<?php

$expire = mktime() + 60 * 5;
setcookie('index', 'A', $expire);
setcookie('index_time', $expire, $expire);

//=========================================

$name = 'index';

if ($_COOKIE[$name.'_time'] > mktime()) {

    echo 'Значение куки '.$name.': '.$_COOKIE[$name].'<br>';
    echo 'Дата истечения: '.date('d.m.Y H:i:s', $_COOKIE[$name.'_time']);

    $end = $_COOKIE[$name.'_time'] - mktime();
    echo 'До истечения осталось '.$end.' секунд.';
} else {
    echo 'Время действия куки истекло.';
}

?>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)