当会话被破坏或过期时,我有一个清除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?
答案 0 :(得分:0)
由于您的 cookie 由您的会话中的数据标识,因此在销毁会话之前删除/清除cookie是合乎逻辑的。
因此,每当需要销毁会话时,请先清除cookie,然后销毁会话。
类似这样的东西:
clearCookie();
unset($_SESSION);
session_destroy();
答案 1 :(得分:0)
将cookie值设置为过去的日期
setcookie($cookie_name, '', time() - (86400 * 30), "/",""); // 86400 = 1 day
session_destroy();