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

Php 是否更新cookie值而不更改其到期日期?,php,setcookie,Php,Setcookie,是否更新cookie值而不更改其到期日期 $c = $_COOKIE["count"]; $c++; if (isset($_COOKIE["count"])) { setcookie("count", $c); } else { setcookie("count", $c, time() + 86400, '/'); } 更新cookie值而不更新其到期日期的唯一方法是将到期日期本身添加到值中;这是因为浏览器只向您发送cookies的名称和值 if (isset($_COOK

是否更新cookie值而不更改其到期日期

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

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

if (isset($_COOKIE['count'])) {
    list($exp, $val) = explode('|', $_COOKIE['count'], 2);
    ++$val;
} else {
    $exp = time() + 86400;
    $val = 1;
}
setcookie('count', "$exp|$val", $exp, '/');

你不能-PHP不知道cookie何时过期,也不知道javascript(除非你将过期时间复制到cookie内容中)。

你可以在其他cookie中保存过期日期。更新cookie时,只需从中读取到期日期并在更新中使用。

不可能,因为没有“更新”cookie这样的事情,所以也不可能接收剩余的ttl。您可以做的是将数据和ttl序列化并保存为值,然后读取它们并设置新的ttl和数据accordingly@UZSTYLEGROUP您必须首先清除所有现有的Cookie,因为格式会发生更改。Cookie值:1353168251%7C1它是什么?@UZSTYLEGROUP它包含时间戳(位于
%7C
的左侧)右边的实际值,即
1
,如何进行限制<代码>如果(20>$$u COOKIE[“count”]){if(isset($$u COOKIE[“count”]){list($exp,$val)=explode(“|”),$$u COOKIE[“count”],[2];+$val;}否则{$exp=time()+86400;$val=1;}setcookie('count',“$exp$val”,$exp,$exp,'/');readfile(file.mp3)}$c或
$val>只是变量名;在适当的地方重命名。