PHP Session记住我的功能

时间:2016-01-27 20:21:51

标签: php session cookies

我正在创建一个使用PHP会话“登录”并拥有帐户的网站。默认情况下,由于Cookie过期,用户在关闭浏览器时会注销。我想在网站上实现“记住我”或“让我登录”功能。我考虑过两种可能的解决方案。

  1. 延长会话cookie的生命周期,使其在用户关闭浏览器时不会过期
  2. 添加第二个Cookie,其中包含随机生成的标识用户的字符序列。此密钥将与数据库中用户的ID相关联。当用户访问该站点时,将从数据库中检索密钥/ id对,如果它们匹配,则用户将登录。显然,cookie将仅为http。
  3. 每种方法的优缺点是什么,是否会造成严重的安全风险?还有,有更好的方法来解决这个问题吗?感谢。

1 个答案:

答案 0 :(得分:1)

会话cookie的生命周期取决于php.ini中的设置(session.timeout和session.gc_maxlifetime)。 Pro就是说,整个会话都被记住(不仅是登录)

另见https://www.sitepoint.com/community/t/php-session-does-not-expire-on-closing-browser/6831/2

请记住,我应该通过一个标识用户的cookie来完成,因为你可以更好地处理生命周期并且它不会保存整个会话信息。

取决于你想要记住什么。