用户关闭浏览器后,使用会话验证用户是否过期?

时间:2012-07-29 21:47:27

标签: php session

我没有使用浏览器cookie,因为我知道它们可以被操纵,我正在使用会话cookie,但问题是用户登录并在他/她重新启动计算机或浏览器时自动注销。

防止这种情况的最佳方式是什么,或者“让我登录[√]”?我见过大多数网站都有这个功能。

提前多多感谢!

3 个答案:

答案 0 :(得分:2)

  

“我没有使用浏览器Cookie”和“我正在使用会话Cookie”

所以你正在使用cookies。试着打电话

session_set_cookie_params(time()+3600*24*365*5);

之前session_start()

答案 1 :(得分:0)

为避免混淆,会话ID存储在cookie中。您可以简单地延长会话cookie的生命周期。其他解决方案......很棘手。

答案 2 :(得分:0)

您必须为Cookie设置到期时间。通常,当用户关闭浏览器时会删除会话cookie。具有过期时间的Cookie仅在Cookie过期时被删除,用户清除浏览器缓存/卸载浏览器/等。

例如,在PHP中,您可以使用setcookie('somename', 'somevalue', timeoutvalue)方法获取更多永久性Cookie,并使用$_COOKIE['somename']检索它们,而不是$_SESSION['somename'] = 'somevalue'。如果您想要更高的安全性,您也可以将登录状态保存到数据库,并在每次用户访问您的网站时将其与cookie进行比较。这样你就可以防止有人篡改cookie来伪造自己的身份。