gpt4 book ai didi

PHP:如何在cookie中存储 session

转载 作者:可可西里 更新时间:2023-11-01 00:08:43 24 4
gpt4 key购买 nike

我是 PHP 的新手,目前正在努力解决以下问题:

我有一个登录页面,我可以在其中启动一个 session ,目前为止运行良好。

session_start();
// ...
$_SESSION["Customer"]["username"] = $username;
$_SESSION["Customer"]["email"] = $email;

现在我以前从未使用过 session ,但假设一旦用户关闭浏览器它们就会消失,我想让他们保持登录状态,这样他们就不必在每次重新进入页面时都这样做。我的想法是为此使用 cookie,但我不确定如何将我的 session 存储在 cookie 中。

我对此做了一些研究并发现了以下内容,但我不确定这是否是正确的方法以及如何使用它来满足我的需要
有人可以帮我解决这个问题吗?

session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] );

lifetime 在我的例子中是无限期的,所以越长越好,
path 可能只是 "/",
secure 为真
而且我不需要 httponly

非常感谢,迈克

最佳答案

事实上,php 确实将 session 存储在 cookie 中 - 单个 cookie,通常称为 PHPSESSID。这对应于服务器上的一个文件(其文件名是 PHPSESSID cookie 的值),它是一组键/值对,例如您在上面概述的那些。

只要用户启用了 cookie, session 就可以正常工作。要确保的主要事情是每个响应都使用 session_start();否则您将无法访问 $_SESSION 中的值。

如果您希望此 session cookie 在浏览器关闭后仍然存在,您需要使用 session_set_cookie_params() ( documentation here ),您将在 session_start() 之前调用它>。

我绝对建议不要使用“永久” session 的方法,只是从可伸缩性的角度来看 - 请记住,每个 session 都对应于服务器上的一个文件,这些文件可能会在一段时间后建立起来(尤其是如果您是高流量网站)。

有一种方法涉及在用户的浏览器上存储一个单独的 cookie,其中包含您的网站可以在 $_COOKIE 中查找的登录信息,启用“自动登录”过程,您可以探索。不过,我不确定这是最安全的方法。

希望对您有所帮助。

关于PHP:如何在cookie中存储 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31068089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com