PHP会话在x分钟不活动后过期

时间:2014-08-20 10:38:34

标签: php session

我正在使用PHP开发一个Web应用程序。要求是用户必须登录网站。我为此使用了会话变量。会话应在10分钟不活动后到期,浏览器必须转发到登录页面。目前,我不确定是否可以使用以下php函数解决它:

session_cache_limiter('public');
session_cache_expire(10); //should expire after 10 minutes inactivity

但我不确定这会在10分钟不活动后到期。我猜它会在10分钟后一般到期。如果它这样做,我怎么能调用会话退出处理程序?

另一种方法是记录每个活动的当前时间。如何在Chrome中记录触摸事件?这可能吗?没有触摸事件记录就没有意义。

1 个答案:

答案 0 :(得分:0)

根据@ serakfalcon的建议,管理会话本身的最后请求时间。要在不活动后将用户注销*前端,您需要使用一些Javascript。 Javascript不是我最强的技能,但我们使用过这样的东西:

<script type="text/javascript">
    setTimeout(function(){
        window.location = '/loginpage';
    }, 600000);
</script>

请记住,如果您正在使用任何AJAX,那么您可能希望在请求完成/完成时重置计时器。所做的就是启动计数器10分钟,然后将用户重定向到/loginpage URI。显然,浏览(即保持活动状态)将阻止重定向

*实际上没有将它们注销,而是在会话已经在服务器上过期时将用户重定向到登录页面。将JS重定向至少比PHP会话到期时更长的时间是明智的,这样你就不会在这里通过调用意外更新会话