我的网站上有以下代码:
session_set_cookie_params(7200, '.website.com', '', false, true);
如果我浏览我的网站,有时我会在两小时后退出我的网站。例如,如果我提交表格,那就非常令人沮丧。
我的问题是:我怎么能解决这个问题?是否可以在用户不活动2小时后退出用户?什么应该是session_set_cookie_params
的第一个超时值?
答案 0 :(得分: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");
)
如果您需要更多帮助,请与我们联系:)
答案 1 :(得分: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
值刷新到实际时间,因此它永不过期......)