当结束会话时,session_destroy()应该销毁会话和会话中注册的会话变量。但是我看到很多代码在销毁会话之前取消了所有已注册的会话变量。请问谁知道,最佳做法是什么?
答案 0 :(得分:6)
session_destroy会删除所有会话数据,因此无法在下一个请求中使用。但是,它不会取消设置$_SESSION
,如果您的应用程序依赖于$_SESSION
数组中的特定值,则它可能会以错误的方式运行。但是你不需要取消设置每个会话变量,你可以用这种方式结束会话:
$_SESSION = array();
session_destroy();
答案 1 :(得分:1)
$_SESSION = array();
session_destroy();
setcookie('PHPSESSID', '', time()-3600,'/', '', 0, 0);
同时取消设置客户端的PHPSESSID
cookie。 http://php.net/session_destroy
答案 2 :(得分:0)
销毁会话将取消设置所有变量。我不知道有任何理由在破坏之前取消它们。但是,你可以想要取消设置变量但是保持会话。这可以通过调用session_unset();
来完成