我的网站上有以下代码:
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
如果用户应该注销(可能使用session_destroy(); header("Location: http://yourwebsite.com/login.php");
),您还需要将logoutfunction();
替换为您想要发生的任何事情
如果你需要更多的帮助,请告诉我:)
您需要在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
值在会话刷新到实际时间,所以它永远不会过期…)