Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Поставить cookie ровно на одну минуту
 
 автор: Eugene77   (02.04.2009 в 18:10)   письмо автору
 
 

Мне важно, точно выдержать срок годности у печенки.
И при этом предпочтительно было бы поставить её через header.
Но посетители заходят с разных временных зон, да и часы не у всех идут точно.

Как решить эту задачку?
Наверно какие-то возможности предусмотрены для её решения?
Кто-нибудь в курсе?

  Ответить  
 
 автор: OLi   (02.04.2009 в 20:37)   письмо автору
 
   для: Eugene77   (02.04.2009 в 18:10)
 

setcookie("aaa", "111", time() + 59); 

if(isset($_COOKIE['aaa'])){.....)

  Ответить  
 
 автор: Loki   (03.04.2009 в 10:07)   письмо автору
 
   для: OLi   (02.04.2009 в 20:37)
 

Как по вашему, функция time() возвращает время сервера или клиента?

  Ответить  
 
 автор: Loki   (03.04.2009 в 10:18)   письмо автору
 
   для: Eugene77   (02.04.2009 в 18:10)
 

Для таких коротких промежутков времени лучше использовать другие методы. Например сессии...

  Ответить  
 
 автор: Eugene77   (03.04.2009 в 14:30)   письмо автору
 
   для: Loki   (03.04.2009 в 10:18)
 

В принципе, вы, пожалуй, правы.
Но тогда переделывать придётся много.
А так уже всё отлажено кроме вот этой проблемы с кратковременной печенкой

  Ответить  
 
 автор: sim5   (03.04.2009 в 15:00)   письмо автору
 
   для: Eugene77   (03.04.2009 в 14:30)
 

А на период сессии они вас не устроят?

  Ответить  
 
 автор: ddhvvn   (03.04.2009 в 15:28)   письмо автору
 
   для: Eugene77   (03.04.2009 в 14:30)
 

зависит конечно от ситуации, например, AJAXом отсылать время клиента, поправка на которое будет учитываться в скрипте или же вообще устанавливать куки в через JS

  Ответить  
 
 автор: Loki   (03.04.2009 в 16:09)   письмо автору
 
   для: ddhvvn   (03.04.2009 в 15:28)
 

Устанавливать все равно чем, важно что проверять придется сервером, а значит вариант нежизнеспособный.

  Ответить  
 
 автор: Eugene77   (04.04.2009 в 14:58)   письмо автору
 
   для: Loki   (03.04.2009 в 16:09)
 

>Устанавливать все равно чем, важно что проверять придется сервером, а значит вариант нежизнеспособный.

Почему же? Видимо самый простой вариант всё-таки поставить через JS.
Но только у меня печенки через JS с переменным успехом ставятся.
Я, вероятно, каких-то тонкостей JS не знаю.
Будте добры, преведите мне аккуратно вот это на JS:
<?
setcookie
("key"$valuetime()+60'/',ROOT_DOMAINNULL'yes');

  Ответить  
 
 автор: sim5   (04.04.2009 в 15:20)   письмо автору
 
   для: Eugene77   (04.04.2009 в 14:58)
 

document.cookie = "name; expires; path; domain; secure"

  Ответить  
 
 автор: Loki   (04.04.2009 в 17:38)   письмо автору
 
   для: Eugene77   (04.04.2009 в 14:58)
 

>Почему же?
Потому что если ставить на клиенте и проверять на клиенте, то проблема с точностью времени автоматически отпадает. Кроме того, этот вариант подходит только в том случае, если не надо заботиться о безопасности. А раз вопрос возник, значит есть необходимость проверять их именно на сервере.

  Ответить  
 
 автор: Eugene77   (04.04.2009 в 20:55)   письмо автору
 
   для: Loki   (04.04.2009 в 17:38)
 

>>Почему же?
>Потому что если ставить на клиенте и проверять на клиенте, то проблема с точностью времени автоматически отпадает. Кроме того, этот вариант подходит только в том случае, если не надо заботиться о безопасности. А раз вопрос возник, значит есть необходимость проверять их именно на сервере.

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

  Ответить  
 
 автор: Trianon   (04.04.2009 в 17:47)   письмо автору
 
   для: Eugene77   (02.04.2009 в 18:10)
 

>Мне важно, точно выдержать срок годности у печенки.

Что именно должно произойти спустя 60 секунд?

  Ответить  
 
 автор: Eugene77   (04.04.2009 в 20:59)   письмо автору
 
   для: Trianon   (04.04.2009 в 17:47)
 

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

  Ответить  
 
 автор: Trianon   (04.04.2009 в 22:21)   письмо автору
 
   для: Eugene77   (04.04.2009 в 20:59)
 

>Если больше чем через 60 секунд

больше чем через 60 секунд после какого события?

  Ответить  
 
 автор: Eugene77   (05.04.2009 в 13:56)   письмо автору
 
   для: Trianon   (04.04.2009 в 22:21)
 

Больше чем 60 секунд от окончания загрузки страницы, которая эту печенку ставит.

Впрочем, я кажется просто туплю.
Элементарное решение: писать в печенку зашифрованное время на сервере.
За 60 секунд его не разгадать.
Так даже безопасность не страдает.
Могут, конечно, возникнуть проблемы при медленной загрузке страницы, но это на стороне сервера вряд ли можно отслеживать.

Всем спасибо!
Извините за глупый вопрос!

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования