我尝试使用该session_destroy()方法销毁所有sesion变量,但在使用该方法后,不会销毁这些值.
为什么session_destroy()不工作?
有没有其他方法来破坏PHP中的会话?
if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800))
{
session_destroy();
session_unset();
}
Run Code Online (Sandbox Code Playgroud)
R.D*_*.D. 94
可能为时已晚,无法做出响应,但请确保在销毁会话之前对其进行初始化.
session_start() ;
session_destroy() ;
Run Code Online (Sandbox Code Playgroud)
即如果在index.php中初始化会话,则无法销毁logout.php中的会话.您必须在销毁之前在logout.php中启动会话.
And*_*rea 48
使用后session_destroy(),会话在幕后被销毁.由于某种原因,这不会影响$_SESSION已为此请求填充的值,但在将来的请求中它将为空.
你可以手动清除$_SESSION你是否愿意($_SESSION = [];).
kev*_*nji 15
如果需要清除值$_SESSION,请将数组设置为空数组:
$_SESSION = array();
Run Code Online (Sandbox Code Playgroud)
当然,$_SESSION一旦你打电话,你就无法访问另一个页面上的值session_destroy,所以这并不重要.
请尝试以下方法:
session_destroy();
$_SESSION = array(); // Clears the $_SESSION variable
Run Code Online (Sandbox Code Playgroud)
我还必须像这样删除会话 cookie:
session_start();
$_SESSION = [];
// 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();
Run Code Online (Sandbox Code Playgroud)
资料来源:geeksforgeeks.org