|
|
|
| Мне важно, точно выдержать срок годности у печенки.
И при этом предпочтительно было бы поставить её через header.
Но посетители заходят с разных временных зон, да и часы не у всех идут точно.
Как решить эту задачку?
Наверно какие-то возможности предусмотрены для её решения?
Кто-нибудь в курсе? | |
|
|
|
|
|
|
|
для: Eugene77
(02.04.2009 в 18:10)
| |
setcookie("aaa", "111", time() + 59);
if(isset($_COOKIE['aaa'])){.....)
|
| |
|
|
|
|
|
|
|
для: OLi
(02.04.2009 в 20:37)
| | Как по вашему, функция time() возвращает время сервера или клиента? | |
|
|
|
|
|
|
|
для: Eugene77
(02.04.2009 в 18:10)
| | Для таких коротких промежутков времени лучше использовать другие методы. Например сессии... | |
|
|
|
|
|
|
|
для: Loki
(03.04.2009 в 10:18)
| | В принципе, вы, пожалуй, правы.
Но тогда переделывать придётся много.
А так уже всё отлажено кроме вот этой проблемы с кратковременной печенкой | |
|
|
|
|
|
|
|
для: Eugene77
(03.04.2009 в 14:30)
| | А на период сессии они вас не устроят? | |
|
|
|
|
|
|
|
для: Eugene77
(03.04.2009 в 14:30)
| | зависит конечно от ситуации, например, AJAXом отсылать время клиента, поправка на которое будет учитываться в скрипте или же вообще устанавливать куки в через JS | |
|
|
|
|
|
|
|
для: ddhvvn
(03.04.2009 в 15:28)
| | Устанавливать все равно чем, важно что проверять придется сервером, а значит вариант нежизнеспособный. | |
|
|
|
|
|
|
|
для: Loki
(03.04.2009 в 16:09)
| | >Устанавливать все равно чем, важно что проверять придется сервером, а значит вариант нежизнеспособный.
Почему же? Видимо самый простой вариант всё-таки поставить через JS.
Но только у меня печенки через JS с переменным успехом ставятся.
Я, вероятно, каких-то тонкостей JS не знаю.
Будте добры, преведите мне аккуратно вот это на JS:
<?
setcookie("key", $value, time()+60, '/',ROOT_DOMAIN, NULL, 'yes');
|
| |
|
|
|
|
|
|
|
для: Eugene77
(04.04.2009 в 14:58)
| |
document.cookie = "name; expires; path; domain; secure"
|
| |
|
|
|
|
|
|
|
для: Eugene77
(04.04.2009 в 14:58)
| | >Почему же?
Потому что если ставить на клиенте и проверять на клиенте, то проблема с точностью времени автоматически отпадает. Кроме того, этот вариант подходит только в том случае, если не надо заботиться о безопасности. А раз вопрос возник, значит есть необходимость проверять их именно на сервере. | |
|
|
|
|
|
|
|
для: Loki
(04.04.2009 в 17:38)
| | >>Почему же?
>Потому что если ставить на клиенте и проверять на клиенте, то проблема с точностью времени автоматически отпадает. Кроме того, этот вариант подходит только в том случае, если не надо заботиться о безопасности. А раз вопрос возник, значит есть необходимость проверять их именно на сервере.
Да, это верно. Как раз для безопасности печенка и ставится.
JS эту безопасность уже не обеспечит.
Надо было сразу на сессиях делать, но я решил что печенками обойдусь, не буду зря сервер грузить,и так скрипт тяжеловат.
Но поскольку печенка не единственная мера безопасности у меня, раз ничего другого не придумывается, наверно я склонен ею пожертвовать. Лишь бы работало. | |
|
|
|
|
|
|
|
для: Eugene77
(02.04.2009 в 18:10)
| | >Мне важно, точно выдержать срок годности у печенки.
Что именно должно произойти спустя 60 секунд? | |
|
|
|
|
|
|
|
для: Trianon
(04.04.2009 в 17:47)
| | Если больше чем через 60 секунд браузер запрашивает страницу, то сервер ему должен отдать совсем не то, что он мог бы получить если бы сделал запрос в рамках этих 60 секунд. | |
|
|
|
|
|
|
|
для: Eugene77
(04.04.2009 в 20:59)
| | >Если больше чем через 60 секунд
больше чем через 60 секунд после какого события? | |
|
|
|
|
|
|
|
для: Trianon
(04.04.2009 в 22:21)
| | Больше чем 60 секунд от окончания загрузки страницы, которая эту печенку ставит.
Впрочем, я кажется просто туплю.
Элементарное решение: писать в печенку зашифрованное время на сервере.
За 60 секунд его не разгадать.
Так даже безопасность не страдает.
Могут, конечно, возникнуть проблемы при медленной загрузке страницы, но это на стороне сервера вряд ли можно отслеживать.
Всем спасибо!
Извините за глупый вопрос! | |
|
|
|