【问题标题】:Why aren't the cookies deleted?为什么 cookie 没有被删除?
【发布时间】:2015-11-03 20:30:51
【问题描述】:

我正在尝试取消设置 cookie,我之前设置为:

    setcookie(session_name(),$sessionID,time() + 30*24*3600,'/');
    setcookie('UserID',$result[0]['UserID'],time() + 30*24*3600,'/');
    setcookie('UType',$result[0]['UType'],time() + 30*24*3600,'/');
    setcookie('Username',$Username,time() + 30*24*3600,'/');

注销文件:

function unsetCookie() {
    foreach($_COOKIE as $key => $value) {
        // $_COOKIE[$key] contains the cookie name as expected
        setcookie($_COOKIE[$key],'',time()-(40*24*3600),'/');
    }
}

unsetCookie();
session_start();
session_destroy();
header('Location: '.$loginPage);
exit();

但是在注销文件中重定向后,cookies 仍然没有被删除。这可能是什么原因?

【问题讨论】:

  • @Marged 循环有正确的值

标签: php cookies


【解决方案1】:

$_COOKIE[$key] 包含您的 cookie 的值,而不是键,因为它是 $key

所以你需要:

setcookie($key,'',time()-(40*24*3600),'/');

【讨论】:

  • @SuhailGupta 啊,我明白了:“循环具有正确的值”;-)
【解决方案2】:

将值设置为 "" 并将到期日期设置为昨天(或过去的任何日期)

试试这样的代码:-

setcookie("UserID", "", time()-(40*24*3600));
setcookie("UType", "", time()-(40*24*3600));
setcookie("Username", "", time()-(40*24*3600));

【讨论】:

    猜你喜欢
    • 2012-09-22
    • 2015-12-10
    • 1970-01-01
    • 2010-10-12
    • 2016-02-14
    • 1970-01-01
    • 2016-09-25
    • 2010-09-17
    • 1970-01-01
    相关资源
    最近更新 更多