SESSION ID 的字串,會以 COOKIE 的型態存放在使用者電腦裡,所以當使用者連到網站時,會依照 COOKIE 的 SESSION ID 去跟 Web Server 的 session檔名 比對,藉以找到屬於該使用者專屬的 session檔案,相關函式如下...
查看 SESSION ID 值
echo session_id(); //68b4d290db0293774a3a295fb273d0a1
查看 COOKIE 的名稱
echo session_name(); //顯示範例:PHPSESSID
查看存在 COOKIE 的 SESSION ID 值
echo $_COOLIE['PHPSESSID']; //68b4d290db0293774a3a295fb273d0a1
備註:
利用 URL 的參數手動傳遞 SESSION ID的作法
<a href="login.php?<?=session_name();?>=<?=session_id();?>">Login</a>
特別說明:
觀察到一個現象,因為 PHP 在使用者第一次讀網頁時,無法判斷使用者的瀏覽器是否開啟 COOKIE 功能,就算瀏覽器有開啟 COOKIE 功能,PHP 也會先以 URL 模式去傳遞SESSION ID ,因此,此時超全域變數【 SID 】會有值,例如:
echo SID; //PHPSESSID=68b4d290db0293774a3a295fb273d0a1
而 $_COOKIE['session_name'] 會是空值,但如果按重新整理的話, PHP 會採用 COOKIE 模式, SID 就會變成空值,而 $_COOKIE['session_name'] 則會有值,例如:
echo $_COOKIE['session_name']; //68b4d290db0293774a3a295fb273d0a1
No comments:
Post a Comment