[英]How does PHP set the PHPSESSID into $_COOKIE superglobal variable without using the function setcookie() or setrawcookie()?
我正在學習PHP最重要和最難理解的概念,即。 “會話和Cookie”
根據我的理解,只能使用setcookie()
或setrawcookie()
函數將cookie設置到瀏覽器中。
根據我對會話過程的理解,它的工作方式如下。
PHPSESSID
。 為了在我的PHP代碼中引用會話ID,因此,我將引用變量$ PHPSESSID(這是一個cookie名稱) 如果以上說明中我的理解有誤,請糾正我。
我的疑問是,由於會話正在$_COOKIE
超全局變量中設置一些值,因此無法使用setcookie() or setrawcookie()
任何函數,那么會話ID仍如何存儲為cookie變量?
如果我假設將會話ID設置為cookie變量,並且內部可能已調用setccookie() or setrawcookie()
那么在調用函數setccookie() or setrawcookie()
來設置cookie時設置的參數值是什么?值?
謝謝。
Cookie的默認名稱是
PHPSESSID
。 要在PHP代碼中引用會話ID,因此,我將引用變量$PHPSESSID
不,它只是cookie的名稱,不會將其設置為全局變量。 您可以在$_COOKIE['PHPSESSID']
訪問值。 但是,實際上,這根本不關心您,您只應使用session_*
函數和$_SESSION
超全局變量與PHP的會話API進行交互,對於大多數意圖和目的,所使用的基礎cookie都不是您所關心的。
…在任何地方都無法使用
setcookie()
或setrawcookie()
函數……如果我假設將會話ID設置為cookie變量,並且內部可能已調用
setccookie()
或setrawcookie()
…
是的,PHP內部調用了一些將設置cookie的函數。 它可能既不是setcookie
也不是setrawcookie
而是一些內部C函數來設置cookie。 再次,這實際上與您無關。 您只需要了解調用session_start
會在某種程度上內部導致設置cookie。
…那么調用函數
setccookie()
或setrawcookie()
設置cookie值時設置的參數值是多少?
這些由您可以通過session_set_cookie_params
或ini_set
設置的各種session.cookie_*
參數確定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.