Tan*_*uta 3 php cookies session session-variables session-cookies
我是PHP新手,目前正在努力解决以下问题:
我有一个登录页面,我在下面开始会话,到目前为止效果很好.
session_start();
// ...
$_SESSION["Customer"]["username"] = $username;
$_SESSION["Customer"]["email"] = $email;
Run Code Online (Sandbox Code Playgroud)
现在我以前从未使用过会话,但假设一旦用户关闭浏览器就死了,我想让他们保持登录状态,以便他们无论何时重新进入页面都不必这样做.我的想法是使用cookie,但我不确定如何将我的会话存储在cookie中.
我对此进行了一些研究并发现了以下内容,但我不确定这是否是正确的方法以及如何将其用于我需要的内容.
有人可以帮我弄这个吗 ?
session_set_cookie_params ( int $lifetime [, string $path [, string $domain [, bool $secure = false [, bool $httponly = false ]]]] );
Run Code Online (Sandbox Code Playgroud)
lifetime在我的情况下将是无限期,所以只要可能,
path可能只是"/",
secure将是真的
,我不需要httponly.
非常感谢,迈克
实际上,php会将会话存储在cookie中 - 一个cookie,通常称为PHPSESSID.这对应于服务器上的文件(其文件名是PHPSESSIDcookie 的值),该文件是一组键/值对,例如您在上面概述的那些.
如果用户启用了cookie,则会话将正常工作.要确保的主要是每个响应都使用session_start(); 否则你将无法访问其中的值$_SESSION.
如果您希望在浏览器关闭后继续使用此会话cookie,则需要使用之前调用的session_set_cookie_params()(此处为文档)session_start().
从可扩展性的角度来看,我绝对建议不要采用'永恒'会话的方法 - 记住每个会话对应一个服务器上的文件,这些文件可能会在一段时间后建立(特别是如果你是一个高流量的网站) ).
有一种方法涉及在用户的浏览器上存储单独的cookie,其中包含您的网站可以在其中查找的登录信息$_COOKIE,启用"自动登录"过程,您可以探索该过程.我不确定这是最安全的方法.
希望有所帮助.
| 归档时间: |
|
| 查看次数: |
5232 次 |
| 最近记录: |