PHP:设置cookie - 由于某种原因,旧值不会被替换

时间:2011-02-20 17:02:10

标签: php cookies setcookie

我有一个脚本,我设置了2个cookie:

$month = time() + 60 * 60 * 24 * 30;
setcookie('id', $id, $month, '/');
setcookie('auth', $auth, $month, '/');
header('Content-Type: text/html; charset=utf-8');
print('<html><body>...etc....');

这确实很有效,但是:有些用户拥有多个ID,具体取决于他们通过iframe访问我的脚本的页面(社交网络)。

具有多个id的用户不是问题。但我的问题是,当我要求那个人查看他的饼干时,他会报告有几个名为 id auth 的Cookie。而且我也可以自己复制它。

我实际上期待总共只有1个 id 和1个 auth Cookie。

我可以在这做什么?

不使用新值调用 setcookie('id',...)替换旧值?

谢谢! 亚历

1 个答案:

答案 0 :(得分:1)

Cookie基于KV Scheme(Key = Value)概念,Key作为唯一标识符。

setcookie的三个主要效应器是

  • CREATE
    • 使用setcookie("id","value")
    • 创建Cookie
  • READ
    • 使用$_COOKIE["id"]
    • 阅读Cookie
  • UPDATE
    • 使用setcookie("id","new value")
    • 更新Cookie
  • DELETE
    • 通过设置过去setcookie ("TestCookie", "", time() - 10);
    • 的到期时间删除

所以是的,你的问题是正确的,你应该看看可能阻止cookie状态的其他因素。