[英]Check if there is a session without using session_start()
我想檢查一個人是否有活動會話,並在他們有活動時將他們重定向到另一個頁面。 但是,我不想使用session_start() ,因為這會在個人 PC 上放置一個 cookie(我不想在人們未登錄時將 cookie 放在他們的 PC 上)。 有沒有辦法檢查現有會話,而無需在他們的 PC 上放置 cookie?
您可以檢查會話 ID cookie 是否存在,如果之前在您網站的其他地方設置過,客戶端會將其發回:
if (isset($_COOKIE[session_name()])) {
... most likely there's a session available to be loaded ...
}
為了增加安全性,您可以使用session_save_path()
和session_name()
來檢查會話文件是否存在(假設您使用的是默認的基於文件的處理程序session_save_path()
,以建立一個傳遞給file_exists()
的路徑
您可以檢查函數session_id()
,它將返回用戶的當前會話 ID,如果不存在會話,則返回空字符串:
if (empty(session_id())) {
/* redirect or logic here here, example: */
header('location:path/to/your/session/start/page');
exit();
}
或者,您可以檢查會話 cookie/全局變量是否已設置( isset($_SESSION)
或isset($_COOKIE[session_name()]
. session_id()
此處的文檔session_id()
首先測試一下,但我認為session_id() != ""
會在有會話時返回 true,否則返回 false。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.