【问题标题】:How to set cookies for uuid如何为 uuid 设置 cookie
【发布时间】:2011-04-21 22:57:23
【问题描述】:

我有一个网站,每次加载/刷新页面时都会生成一个 uuid。我想使用 cookie 使某个值在一段时间内保持不变。有谁知道可以帮助我的脚本吗?

【问题讨论】:

  • erm,你尝试过会话吗?
  • 我无法使用会话。我希望每个新访问者(即一个月)的 uuid 长时间保持不变,因此会话无济于事。
  • 如果你不能使用会话,为什么 cookie 在这个等式中很重要?
  • 你们需要仔细阅读。我可以使用会话,但我不能使用它们,因为浏览器关闭时会话结束。
  • 不一定。会话(通常)由 cookie 维护,因此它们可以与 cookie 一样长时间保持活动状态(假设服务器不会删除它们)。

标签: php cookies uuid


【解决方案1】:

不知道你为什么要一个脚本,或者这里的问题是什么。要设置 cookie,只需使用:

if (empty($_COOKIE["uuid"])) {
    $uuid = uniqid();  // or use a real UUID
    setcookie("uuid", $uuid, time()+30*24*60*60, "/");
}
else {
    $uuid = $_COOKIE["uuid"];
}

实际上,您应该偶尔执行一次 setcookie,无论如何都要刷新 cookie 的生命周期。

【讨论】:

    【解决方案2】:

    您可以设置在浏览器会话关闭时删除的 cookie。这可以用作用户“重新访问”该站点时的信号。在每个页面上存储一个 uuid cookie 将为您提供最后一个 uuid,您可以从中执行您的请求。

    setcookie('firstvisit', 1);
    setcookie('uuid', $uuid, time()+368400);
    if(isset($_COOKIE['firstvisit']) && isset($_COOKIE['uuid'])) {
        // load uuid content
    }
    

    【讨论】:

    • 每次使用 $uuid 运行 setcookie() 时,它都会替换 cookie 中 'uuid' 的值。
    猜你喜欢
    • 1970-01-01
    • 2017-01-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多