![](/img/trans.png)
[英]Is $_SESSION['session_id'] always equal to $_COOKIE['PHPSESSID']?
[英]session_id() always returns '' even if a session cookie is set
我目前在使用PHP函數session_id時遇到問題。
在我的腳本開始時,我想檢查用戶是否有一個會話,並且不想調用session_start(),因為那樣會生成會話cookie。
每當我調用session_id時,即使已明確設置會話,它也會返回''。 我通過$ _COOKIE數組檢查會話cookie來驗證是否已設置會話。
session_start()
將不會生成新的會話。 從PHP文檔 :
session_start()創建會話或基於通過GET或POST請求傳遞或通過cookie傳遞的會話標識符恢復當前會話。
您必須先恢復舊會話,然后才能獲取其ID。
如果不調用session_start(),則PHP不存在該會話。 在session_start()之后,您可以通過檢查$ _SESSION超全局數組中的密鑰來輕松檢查用戶是否有會話。
如果您想檢查他們是否有一個會話並獲得會話ID而又不創建一個新會話,那么最好的辦法是在$ _COOKIE數組中查找該會話ID(如果使用$ _GET進行存儲,則為$ _GET id)。
session_id()僅在您調用session_start()時有效。 如果該會話已經存在,它將不會生成新的會話ID,因此仍會為您提供所需的會話ID。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.