Internet Explorer中的cookie问题

时间:2012-12-17 16:27:15

标签: php internet-explorer session cookies

我遇到了未知的问题,即我无法取消与浏览器的会话。

以下是我的代码,用于检查每个请求:

if (isset($_SESSION["logid"])) {
    $log = TRUE;
    $logid = $_SESSION["logid"];
    $session_id = $_SESSION["sid"];
} else {
    $log = FALSE;
}
if (!isset($_COOKIE["cook"])) {
    if ($log) {
        unset($_SESSION["logid"]);
        unset($_SESSION["sid"]);
        $log = false;
    }
    $expire = time() + 60 * 60 * 24 * 30 * 2;
    $data = array(
        "ip" => $_SERVER['REMOTE_ADDR'],
        "browser" => $_SERVER['HTTP_USER_AGENT'],
        "create_time" => $now
    );
    $result = $db->insert("cookies", $data);
    $cookie_id = $db->lastid;
    $cookie_id = my_encrypt($cookie_id);
    setcookie("cook", $cookie_id, $expire, "/");
} else {
    $cookie_id = $_COOKIE["cook"];
}

和注销代码在这里

unset($_SESSION["logid"]);
unset($_SESSION["sid"]);

我不想取消设置/过期名为 cook 的cookie,但我想在手动删除cookie或其他原因时创建它,以便第一个块中的代码执行此操作。

1 个答案:

答案 0 :(得分:0)

我不太确定我理解这个问题,但也许这会有所帮助。所有浏览器实例(窗口或选项卡)共享相同的cookie jar。虽然这在“现实生活”中很少成为问题,但它会对开发人员造成严重破坏,因为作为开发人员,您可能会打开许多​​标签。如果要测试更改cookie的应用程序(例如登录或注销),则应关闭浏览器的所有实例并仅打开一个实例,然后进行测试。