注销非活动用户

时间:2013-03-16 16:05:49

标签: php parameters timeout session-cookies

我的网站上有以下代码:

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

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

我的问题是:我怎么能解决这个问题?是否可以在用户不活动2小时后退出用户?什么应该是session_set_cookie_params的第一个超时值?

2 个答案:

答案 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值刷新到实际时间,因此它永不过期......)