4

更新 cookie 值而不更改其到期日期?

$c = $_COOKIE["count"];
$c++;
if (isset($_COOKIE["count"])) {
    setcookie("count", $c);
}
else
{
    setcookie("count", $c, time() + 86400, '/');
}
4

3 回答 3

3

您可以在不更新其到期日期的情况下更新 cookie 的值的唯一方法是将到期日期本身添加到值中;这是因为浏览器只向您发送 cookie 的名称和值。

if (isset($_COOKIE['count'])) {
    list($exp, $val) = explode('|', $_COOKIE['count'], 2);
    ++$val;
} else {
    $exp = time() + 86400;
    $val = 1;
}
setcookie('count', "$exp|$val", $exp, '/');
于 2012-11-16T15:01:23.443 回答
0

你不能——PHP 不知道 cookie 什么时候过期,也不知道 javascript(除非你将过期时间复制cookie 内容中)。

于 2012-11-16T15:01:49.413 回答
0

您可以将到期日期保存在其他 cookie 中。当您更新您的 cookie 时,只需从中读取到期日期并在您的更新中使用它。

于 2012-11-16T15:02:10.493 回答