PHP-销毁会话并删除Cookie

时间:2020-01-10 10:06:35

标签: php session cookies

当会话被破坏或过期时,我有一个清除cookie的问题。我使用会话(登录的用户)和cookie(购物车)创建应用程序,并且在会话被破坏或过期时必须清除购物车。我正在尝试使用$ _SESSION [SESSION_NAME],但在销毁或过期后并非总是将$ _SESSION [SESSION_NAME]删除。

if(!isset($_COOKIE[SESSION_NAME])) {
   clearCookie();
}

当我删除具有会话ID的cookie时,cookie已被清除,但是当会话过期时,则存在cookie(以及具有会话ID的cookie)。

我尝试了所有会话功能(https://www.php.net/manual/en/ref.session.php),但找不到好的解决方案。 在会话已删除或过期时如何清除cookie?

2 个答案:

答案 0 :(得分:0)

由于您的 cookie 由您的会话中的数据标识,因此在销毁会话之前删除/清除cookie是合乎逻辑的。

因此,每当需要销毁会话时,请先清除cookie,然后销毁会话。

类似这样的东西:

clearCookie();
unset($_SESSION);
session_destroy();

答案 1 :(得分:0)

将cookie值设置为过去的日期

setcookie($cookie_name, '', time() - (86400 * 30), "/","");  // 86400 = 1 day
session_destroy();