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

时间:2011-09-30 15:25:03

标签: php session

  

可能重复:
  How do I kill a PHP session?

当结束会话时,session_destroy()应该销毁会话和会话中注册的会话变量。但是我看到很多代码在销毁会话之前取消了所有已注册的会话变量。请问谁知道,最佳做法是什么?

3 个答案:

答案 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();

来完成