session_destroy()
会破坏会话数据,但不会取消设置与会话相关的任何全局变量或取消设置会话cookie。
那么我们为什么要破坏会话?
我们是否可以在每次会话开始时在页面末尾销毁会话,同时提供相同的功能而不会破坏?
答案 0 :(得分:5)
session_destroy()将删除会话文件(如果使用文件存储)。否则,会话文件将驻留在服务器上,直到垃圾回收将其删除。因此,如果要确保从服务器中删除存储的会话数据,则必须调用session_destroy()。
请勿在每个页面上调用此内容!只有在用户注销后,您才不再需要存储的信息。
答案 1 :(得分:0)
您的正确方法应该是运行session_destroy,然后重新加载页面以强制会话更改操作(例如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....
另请参阅this answer,了解如何在客户端浏览器上删除会话cookie。