我被问到这个问题。一旦我在浏览器中注销了仍然像用户名等的字段。我相信这只是保留该数据的浏览器。
当我打印session_get_cookie_params
时(在销毁会话后)我得到:
Array ( [lifetime] => 0 [path] => / [domain] => [secure] => [httponly] => )
以下是在php.net网站上找到的推荐方法。 这不是面试。我正在处理遗留代码并添加了注销功能。下面的代码似乎同时执行kill session和expire cookie。当我删除cookie过期部分时,脚本无法将用户注销,重定向到主页只会刷新页面。用户仍然可以访问。
<?php
// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();
$_SESSION = array();
if (ini_get("session.use_cookies")) {
$params = session_get_cookie_params();
setcookie(session_name(), '', time() - 42000,
$params["path"], $params["domain"],
$params["secure"], $params["httponly"]
);
}
// Finally, destroy the session.
session_destroy();