0

我的网站上有以下代码:

session_set_cookie_params(7200, '.website.com', '', false, true);

如果我浏览我的网站,有时我会在两个小时后退出我的网站。例如,如果我要提交一个表单,那会非常令人沮丧。

我的问题是:我该如何解决这个问题?是否可以仅在用户处于非活动状态 2 小时时注销用户?第一个超时值应该是session_set_cookie_params多少?

4

2 回答 2

1

尝试这个:

$_SESSION['loginTime'] = time();
if($_SESSION['loginTime'] < time()+120*60){ logoutfunction(); }

120部分是您指定的 120 分钟(2 小时)。您可能真的很聪明,并询问用户他们想在注销之前等待多长时间:D

logoutfunction();如果用户应该注销(可能使用session_destroy(); header("Location: http://yourwebsite.com/login.php");) ,您还需要用您想要发生的任何事情替换

如果您需要更多帮助,请告诉我:)

于 2013-03-16T17:35:36.757 回答
0

您需要将上次访问者在您的网站上移动的实际时间保存到 SESSION 中。

登录功能:

login_user();
save_actual_time_in_session();

当用户登录时,对于每个页面加载执行:

check_if_time_in_session_is_expired(); // if so, do some action, e.g. redirect to login form
save_actual_time_in_session();

(@Mattios550 解决方案将不起作用,因为在每个 HTTP 请求上loginTime,会话中的值都会刷新为实际时间,因此它永远不会过期......)

于 2013-03-16T18:57:51.650 回答