【问题标题】:What's the reason for cookies mysteriously reappearing?饼干神秘再现的原因是什么?
【发布时间】:2009-04-03 14:00:34
【问题描述】:

我正在开发一个使用 cookie 来存储会话信息的 Web 应用程序。我已经手动删除了会话 cookie,因为我正在处理我不想要登录会话的代码的另一部分。然而,在页面重新加载几次后,会话 cookie 神秘地重新出现,其中包括一个我为测试目的只设置一次的早期 cookie,然后被删除并且再也没有使用过。

我一直手动删除有问题的 cookie,但是,当我在一段时间后重新加载页面时,cookie 又回来了。我已经仔细检查了我的代码,我很肯定我没有在任何地方设置这些 cookie。我的代码目前都在一个文件中,并且我没有包含任何内容,因此我不可能忽略某些内容。

我的代码在 PHP 中,并在我最初创建这些 cookie 时使用了 setcookie() 调用。

我没有设置 cookie 的到期日期。 使用 Safari 4 Beta 和 GlimmerBlocker 代理。

这种奇怪行为的解释是什么?

【问题讨论】:

标签: php cookies safari zombie-process


【解决方案1】:

某些浏览器的 cookie 处理存在已知问题。

请参阅以下论文: iSEC Cleaning Up After Cookies

另请参阅 Apple.com 上的this discussion,了解再次出现 cookie 的情况。

【讨论】:

    【解决方案2】:

    试试这个,它应该删除你所有的会话cookie:

        session_start();
        // Unset all of the session variables.
        $_SESSION = array();
        // If it's desired to kill the session, also delete the session cookie.
        // Note: This will destroy the session, and not just the session data!
        if (isset($_COOKIE[session_name()])) {
            setcookie(session_name(), '', time()-42000, '/');
        }       
        // Finally, destroy the session.
        session_destroy();
    

    【讨论】:

    • 谢谢,但我没有使用 PHP 的会话处理函数;我只是在使用 setcookie()。我试图通过将 cookie 设置为空字符串并在过去很久(如您在上面发布的代码中)的过期日期来强制删除 cookie,但这无济于事。这很奇怪。
    【解决方案3】:

    您使用的是什么版本的操作系统?您同时使用了哪些其他应用程序?这些问题通常是由于应用程序一个接一个地踩在 cookie 存储文件(~/Library/Cookies/Cookies.plist)上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-11-25
      • 1970-01-01
      • 2011-11-05
      • 2014-11-19
      • 1970-01-01
      • 2023-04-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多