setcookie()和session_set_cookie_params()函数之间的区别

Ete*_*ine 6 php cookies session

我试图了解PHP函数setcookie()和session_set_cookie_params()之间的区别。

看起来这两个函数都在执行相同的任务,但是setcookie()可用于创建具有名称和值的cookie。

我试图了解PHP手册,但没有指出明显的区别。

谢谢

小智 8

session_set_cookie_params(秒)

session_start() 做两件事,它在服务器上创建一个临时文件来存储会话数据,并向用户的浏览器发送一个 cookie。此 cookie 具有默认过期时间,因此调用 session_set_cookie_params(seconds) 会将 cookie 的默认过期时间更改为您定义的时间。cookie 基本上将客户端指向他们的会话,因此需要访问会话。

设置 Cookie()

其中 setcookie() 函数定义了一个 cookie 与其余的 HTTP 标头一起发送。


YdB*_*YdB 5

有两种类型的 cookie:

会话 cookie :这些是 session_set_cookie_params() 并且这些是临时 cookie 文件,当您关闭浏览器时会删除这些文件。

持久性 cookie :这是 setcookie() 并且这些文件保留在您浏览器的子文件夹之一中,直到您手动删除它们或您的浏览器根据持久性 cookie 中包含的持续时间删除它们。

例如,如果您想将 cookie 保存 1 周:

$remembering_timespan = time() + 7 * 24 * 60 * 60; 
setcookie('test','username', $remembering_timespan);
Run Code Online (Sandbox Code Playgroud)


小智 -1

setcookie()定义要与其余 HTTP 标头一起发送的 cookie。与其他标头一样,cookie 必须在脚本的任何输出之前发送(这是协议限制)。这要求您在任何输出之前调用此函数,包括 和 标签以及任何空格。

为了使setcookie()正常工作,您需要为每个请求调用session_set_cookie_params() ,并且在调用session_start()和其他类似setcookie()之前。