經驗交流

使用者登出

問題說明
 當使用者登入我們的網站,最後想離開時,應通過一道「登出」的程序,以便結束作業。

我的做法
 這裡所謂的「登出」,就是指清除先前建立的各種 session 變數,您可以就以下兩種方法,擇一採用:
1. unset
 用 unset 指令一一結束每個 session 變數:
<?
session_start();
unset($_SESSION["ssnUSERNAME"]);
unset($_SESSION["ssnREALNAME"]);
unset($_SESSION["ssnUSERLEVEL"]);
unset($_SESSION["ssnAUTHORITY"]);
?>

2. session_distroy
 用 session_distroy 函數直接清除 session id:
<?
session_start();
session_distroy();
?>

 一般而言,用 session_distroy 函數是最方便,也是最徹底的方式。但是當您的系統中含有另一系統時,session_distroy 將同時結束兩邊的作業狀態。
 例如:您在「校務管理系統」中,設了一個「圖書管理系統」的連結點,使用者可以點選它,另開一個新視窗來執行這項功能。由「甲」視窗中開啟「乙」視窗,雖然它們分別執行同一部伺服器上的兩組應用程式,但是它們將共用同一份 session 資料(因為持有相同的 session id)。當您在「校務管理系統」(「甲」視窗)中,執行「登出」動作時,在「圖書管理系統」(「乙」視窗)中的 session id 也將被一併清除。
 為了避免造成兩邊同時「登出」的困擾,您得改用 unset 指令,只結束與「校務管理系統」有關的 session 資料,以保留與「圖書管理系統」相關的部份。
經驗交流