是否可以在PHP中销毁会话但保留cookie?

时间:2016-09-09 15:57:40

标签: php session-cookies

我被问到这个问题。一旦我在浏览器中注销了仍然像用户名等的字段。我相信这只是保留该数据的浏览器。

当我打印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();

0 个答案:

没有答案