只是一个简单的问题。有没有简单的方法如何在更新时不改变cookie中的过期时间?
假设我有一个cookie将在24小时后到期。但在同一天,我几次更新cookie。但我仍然希望cookie在24小时后同时到期。
详细示例:
Cookie“counter”将于2011年7月23日10:00到期。现在,由于某些操作一小时后我更新了此cookie的值。如果我将时间设置为24小时,它将于2011年7月23日11:00到期,但我需要到期时间留在23.07.2011 10:00。
有简单的方法吗?我能想到的唯一方法就是拥有另一个存储过期时间的cookie,但我会发誓必须有更简单的方法,只是遗漏了什么?
谢谢
答案 0 :(得分:1)
您可以将过期日期与Cookie值一起存储,而不是使用其他Cookie:
$expire = time()+$maxage;
setcookie($name, "$expire:$value", $expire);
然后您可以使用explode
获取两个数据:
list($expire, $_COOKIE[$name]) = explode(':', $_COOKIE[$name], 2);
setcookie($name, "$expire:$new_value", $expire);
答案 1 :(得分:0)
PHP(和Javascript)无法检索cookie的到期时间。只知道cookie名称/值对。您确实需要将原始到期时间存储在另一个cookie中,或者在原始setcookie()
调用时存储在数据库表中。在对该cookie的后续修改中,使用您存储在数据库(或其他cookie)中的到期日期。