结束会话的最佳方式是什么


What is the best way to end a session?

可能重复:
如何终止PHP会话?

在结束会话时,session_destroy((应该销毁会话以及在会话中注册的会话变量。但我看到过很多代码在销毁会话之前取消设置所有注册的会话变量。谁知道呢,最好的做法是什么?

session_disation会擦除所有会话数据,因此在下一次请求时它将不可用。但是,它不会取消设置$_SESSION,如果您的应用程序依赖于$_SESSION数组中的特定值,它可能会以错误的方式运行。但您不需要取消设置每个会话变量,您可以通过以下方式结束会话:

$_SESSION = array();    
session_destroy();
    $_SESSION = array();
    session_destroy();
    setcookie('PHPSESSID', '', time()-3600,'/', '', 0, 0);

同时在客户端取消设置PHPSESSID cookie。http://php.net/session_destroy

销毁会话将取消设置所有变量。我不知道有什么理由在销毁之前取消设置它们。但是,您可能希望取消设置变量,但保留会话。这可以通过调用session_unset((来完成;