| 經驗交流 |
|
|---|---|
|
使用者登出 | |
問題說明 | |
| 當使用者登入我們的網站,最後想離開時,應通過一道「登出」的程序,以便結束作業。 | |
我的做法 | |
| 這裡所謂的「登出」,就是指清除先前建立的各種 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 資料,以保留與「圖書管理系統」相關的部份。 | |
| 經驗交流 |
|


問題說明