第一個檔案:a.php <?php session_start(); session_register("UserName"); $UserName = "牛牛"; ?> <a href='b.php'>連到b.php</a> |
第二個檔案:b.php <?php session_start(); if (session_is_registered("UserName")) { echo "UserName 已註冊了,值為:".$UserName."<br>"; } else { echo "UserName 還沒有被註冊<br>"; } session_unregister("UserName"); if (session_is_registered("UserName")) { echo "UserName 已註冊了,值為:".$UserName."<br>"; } else { echo "UserName 還沒有被註冊<br>"; } session_destroy(); ?> |
先執行a.php,再執行b.php 結果: UserName 已註冊了,值為:牛牛 UserName 還沒有被註冊 |
函式: session_start() 開始使用Session session_register("變數名稱") 註冊一個Session session_is_registered("變數名稱") 判斷這個Session是否被設定 session_unregister("變數名稱") 取消已註冊的Session session_destroy() 終止使用Session,並清除所有的Session值 |
說明:
- 在使用session相關函式前,不可以輸出任何空白、字串、數字、HTML語法等,否則會造成程式錯誤,而且無法設定Session!
- 設定Session後,在另一個網頁使用前,必須先加上session_start(),才能取出設定的session值。
- Session變數的規則與一般變數相同,錢字號($)開頭,字首為字母,可以數字、字母或底線(_)。
- 配合HTML的FORM,讓使用者從網頁可輸入帳號及密碼,再用session_register()記錄起來,之後使用者在瀏覽其他網頁時,就可以不用再輸入帳號及密碼了。
- 使用session_destroy()可以清除全部session內容。
|
除錯:
- Warning: Cannot send session cache limiter - headers already sent (output started at a.php:2) in a.php on line 3
在a.php檔案裡,在第三行的使用session之前,已經輸出了其他字元! 請檢查a.php檔,絕不可在session_register()之前輸出任何空白、字串、數字,或是有HTML語法等。
- Warning: Trying to destroy uninitialized session in a.php on line 3
在a.php檔案裡,無法執行第三行的session_destroy()。 請檢查a.php檔,在session_destroy()之前是否已做session_start()。 |