【问题标题】:Cannot delete secure cookie?无法删除安全 cookie?
【发布时间】:2016-12-31 21:30:19
【问题描述】:

我无法删除 cookie,它有时会起作用(怎么可能?)但如果它开始坚持不删除错误,它将永远不会再次起作用。我用手机看到这个,我无法在手机上删除 cookie。 代码如下所示:

setcookie("cookie_name",$value,strtotime('+4year'),"/",null,null,true);

当我删除它时,我会在下面使用:

setcookie("cookie_token",'',strtotime('-4year'),"/",null,null,true);

我也用这个来确定:

if (isset($_SERVER['HTTP_COOKIE'])) {
        $cookies = explode(';', $_SERVER['HTTP_COOKIE']);
        foreach($cookies as $cookie) {
            $parts = explode('=', $cookie);
            $name = trim($parts[0]);
            //databaseden poza bilersen poz ele
            setcookie($name, '', time()-1000);
            setcookie($name, '', time()-1000, '/');
        }
    }
    session_destroy();
    $session = isset($_SESSION) ? $_SESSION : '';

【问题讨论】:

  • 你试过用javascript删除那些cookie吗??
  • 不要使用相对时间作为 cookie 到期时间。这取决于客户的时钟是否准确。虽然不可能有 4 年的差异,但只需使用时间 1 即可到期。任何仍处于 1970 年的人都不应该期望任何东西都能在他们的计算机上正常工作。
  • @MarcB 我是这样使用的:setcookie("cookie_name", '', 1, '/');但是没用。还有其他选择吗?
  • @VishnuBhadoriya 无法使用 javascript 删除安全 cookie

标签: php session cookies session-cookies setcookie


【解决方案1】:

您是否尝试过使用unset 功能?我的意思是:unset($_COOKIE['cookieName'])。

【讨论】:

  • unset($_COOKIE['cookieName']) 不起作用,也不能删除 cookie
  • $_COOKIE 本质上是只读的。对它的任何写入都会 NOT 向客户端触发一个新的 cookie 标头。您必须使用setcookie() 来修改cookie 客户端。
  • 这与上述完全错误无关。更改 $_COOKIE 内容将对客户端中存储的内容产生零影响。
  • @MarcB 是的,我知道删除未设置的 cookie 是不可能的,但我想知道为什么 setcookie($name, '', time()-1000, '/');不工作
猜你喜欢
  • 2011-10-08
  • 1970-01-01
  • 2022-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-20
  • 2012-07-06
  • 2019-11-13
相关资源
最近更新 更多