关于PHP会话的快速问题

时间:2009-08-19 16:07:03

标签: php session persistence

会话通过session_start()启动,我意识到这一点,但为了使会话持久,他们需要一个ID。

现在,php.ini文件有一个设置:

session.use_cookies = 1

所以我不必传递ID。但还有另一种设置:

; Lifetime in seconds of cookie or, if 0, until browser is restarted.
session.cookie_lifetime = 0

我能理解,如果我实现这个并进入我的网站,登录,做我想做的事情,关闭浏览器并在一段时间后再次启动它,当我走的时候我将不再登录回到我的网站?

编辑:因此,为了保持登录状态,我必须将其与客户端Cookie结合使用。

我猜我需要2个数据库字段。 1为会话ID,1为我提供给cookie的ID。

4 个答案:

答案 0 :(得分:2)

我认为你理解正确,PHP手册说:

  

session.cookie_lifetime指定   cookie的生命周期   这是发送到浏览器。该   值0表示“直到浏览器为止   关闭。“默认为0。

http://php.net/session.configuration#ini.session.cookie-lifetime

答案 1 :(得分:2)

不,你不会再登录了。

请在此处查看我的回答:How do I Keep a user logged in for 2 weeks?(如果您希望人们在一段时间后退出,请参阅http://www.drupal.org/node/31506了解有关已完成任务的详细信息)。它可能会对你有帮助。

检查用户代理字符串(只是为了安全。如果黑客以某种方式找到了密钥......他可以发送假cookie并自动登录。对于那些一次切换浏览器的人,他们可以只是复制cookie后再次登录。但是,对于更改或更新浏览器不间断的人来说,这将是一场灾难。)

答案 2 :(得分:0)

我会说是的。你看到了吗?

答案 3 :(得分:0)

是的,这就是会话cookie的目的。