session_destroy()
销毁会话数据,但不取消设置任何与会话相关的全局变量或取消设置会话cookie。
那么我们为什么要破坏会话呢
每次会话在页面开始时,我们是否可以在页面末尾销毁该会话,从而在不销毁的情况下提供相同的功能?
session_destroy()将删除会话文件(如果使用文件存储)。否则,会话文件将驻留在服务器上,直到垃圾收集将其删除。因此,如果您想确保从服务器中删除存储的会话数据,则必须调用session_destroy()。
不要在每一页上都这样称呼!只有在用户注销并且您不再需要存储的信息之后。
您的正确方法应该是运行session_disation,然后重新加载页面以强制执行会话更改操作(如cookie删除),然后PHP中的会话数据在页面重新加载时重新加载并更新。
在运行会话销毁之前,您还应该"手动"清理会话,以便:
<?php
session_start();
if(count)$_SESSION > 0) {
// Or some other more specific cursory check if the session is populated
$_SESSION = array("","","","");
session_destroy();
header("Location: thispage.php");
exit;
}
...
Page continues....
另外,关于如何删除客户端浏览器上的会话cookie,请参考此答案。