簡體   English   中英

即使設置了會話cookie,session_id()始終返回''

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM