我正在学习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值时设置的参数值是什么?
谢谢。
答案 0 :(得分:5)
Cookie的默认名称为
PHPSESSID
。要在我的PHP代码中引用会话ID,我会引用变量$PHPSESSID
不,它只是cookie的名称,不会被设置为全局变量。您可以访问$_COOKIE['PHPSESSID']
中的值。但实际上,这根本不应该关注你,你应该只使用session_*
functions和$_SESSION
超全局与PHP的会话API进行交互,使用的底层cookie不是你关心的问题对于大多数意图和目的。
...它无处使用任何功能
setcookie()
或setrawcookie()
......如果我假设会话ID被设置为cookie变量,而
setccookie()
或setrawcookie()
可能已在内部调用...
是的,PHP正在内部调用一些函数来设置cookie。它可能既不是setcookie
也不是setrawcookie
,而是一些设置cookie的内部C函数。再说一遍,你真的没关注。您只需要了解调用session_start
将以某种方式在内部导致设置cookie。
...然后调用函数
setccookie()
或setrawcookie()
设置cookie值时设置的参数值是什么?
这些由the various session.cookie_*
parameters确定,您可以通过session_set_cookie_params
或ini_set
进行设置。