我的网站上有以下代码:
session_set_cookie_params(7200, '.website.com', '', false, true);
如果我浏览我的网站,有时我会在两个小时后退出我的网站。例如,如果我要提交一个表单,那会非常令人沮丧。
我的问题是:我该如何解决这个问题?是否可以仅在用户处于非活动状态 2 小时时注销用户?第一个超时值应该是session_set_cookie_params
多少?
我的网站上有以下代码:
session_set_cookie_params(7200, '.website.com', '', false, true);
如果我浏览我的网站,有时我会在两个小时后退出我的网站。例如,如果我要提交一个表单,那会非常令人沮丧。
我的问题是:我该如何解决这个问题?是否可以仅在用户处于非活动状态 2 小时时注销用户?第一个超时值应该是session_set_cookie_params
多少?
尝试这个:
$_SESSION['loginTime'] = time();
if($_SESSION['loginTime'] < time()+120*60){ logoutfunction(); }
该120
部分是您指定的 120 分钟(2 小时)。您可能真的很聪明,并询问用户他们想在注销之前等待多长时间:D
logoutfunction();
如果用户应该注销(可能使用session_destroy(); header("Location: http://yourwebsite.com/login.php");
) ,您还需要用您想要发生的任何事情替换
如果您需要更多帮助,请告诉我:)
您需要将上次访问者在您的网站上移动的实际时间保存到 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
,会话中的值都会刷新为实际时间,因此它永远不会过期......)