Cookie и временные зоны

  • Автор темы Автор темы Vorgal
  • Дата начала Дата начала

Vorgal

Новичок
Cookie и временные зоны

Думал, что setcookie выставляет куку по GMT, и браузеры думают также, и что временные зоны не влияют.. ан нет...

В общем, ставлю куку так
PHP:
setcookie("cook_name", "cook_value", time()+900, "/", "domen.com");

Но если часовой пояс у клиента не такой, как у сервера, то часто получается, что время истекания куки раньше, чем время установки :))... да даже, если просто время на клиенте отличается от времени на сервере на 15 минут, то работать уже не будет... Как же тут быть?
 
нда.. тогда это проблема браузера что ли? но почему если время отличается у клиента и у браузера, то кука становится не видна?
 
нет это проблема перехода на летнее время
я сам решал недавно такую проблему
летнее время в россии на час опережает время нашей зоны по гринвичу
т.е. Иркутск +8 GMT а после перехода на летнее время +9
делай поправку на час
из-за этого куки меньше чем на час умирают не родившись
 
тут быть очень просто.
Если учесть, что время на клиенте может быть вообще неправильным, то не полагаться на время жизни куки в таких мелких промежутках.
а писать в куку время установки и контролировать самому в скрипте
 
о господи.
ну что тут объяснять?
если нету куки со временем, то создаешь куку, в которую пишешь текущее время!
если кука есть, то читаешь из нее время и сравниваешь с текущим ,и если оно больше нужного - то делаешь, что тебе надо, тодля ,чего тебе нудно было ограничение.
чего тебе тут не ясно?
 
[..skipped..]
сорри, лажанулся. Я думал о атрибуте expires, а ты говорил о значении куки. Все, вопрос закрыт
 
пиши в значение куки серверное время, а время жизни куки не устанавливай, при следующем обращении к скрипту или странице сайта, читай куку, бери из нее значение и сравнивай с текущим серверным временем, разница покажет сколько секунд назад кука установлена
 
А как установить время жизни куки скажем на год?
 
zip2003

Посчитай cколько в году минут и поставить expire:
time()+кол-ов секунд в году
 
Сверху