我正在尝试删除会话cookie。这些是我正在遵循的步骤
// Find the session - I believe this is doing a resume rather than starting a fresh session thus identifying the session.
session_start();
// Unset all the session variables enmasse by assigning an empty array
$_SESSION = array();
// find the session name that has been allocated then destroy the session cookie
if(isset($_COOKIE[session_name()])){
setcookie(session_name(),'', time()-42000, '/');
// set content of found session to null, with a past time, at the root
}
// Destroy the session
session_destroy();
这绝对会让我退出。但是实际的cookie仍然存在,可以在浏览器中查看(firefox)。
$_COOKIE[session_name()]
似乎返回加密的内容字符串而不是会话名称。
问题:
如果$ _COOKIE [session_name()]不是获取会话名称的正确方法是什么?
我应该设置session_name而不是允许它默认吗?
我看到会话是因为它正在等待某种垃圾收集吗?
答案 0 :(得分:0)
您可能需要查看此页面:
http://php.net/manual/en/function.session-destroy.php
为了完全终止会话,要将用户注销,还必须取消设置会话ID。如果使用cookie来传播会话ID(默认行为),则必须删除会话cookie。 setcookie()可以用于此。
基于此,您可能希望使用session_id()
而不是session_name()