完全销毁会话的最佳方法 – 即使浏览器未closures
这足够吗?
session_start(); // Must start a session before destroying it if (isset($_SESSION)) { unset($_SESSION); session_unset(); session_destroy(); }
当用户select从菜单Log out
,但不退出浏览器? 我想完全删除会话和$_SESSION
所有存在
根据手册 ,还有更多的事情要做:
为了完全消灭会话,就像login用户一样,会话ID也必须是未设置的。 如果使用cookie来传播会话标识(默认行为),那么会话cookie必须被删除。 setcookie()可以用于这个。
手动链接有一个完整的工作示例如何做到这一点。 从那里偷窃:
<?php // Initialize the session. // If you are using session_name("something"), don't forget it now! session_start(); // Unset all of the session variables. $_SESSION = array(); // If it's desired to kill the session, also delete the session cookie. // Note: This will destroy the session, and not just the session data! 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(); ?>