有或没有活动的PHP会话超时

时间:2013-11-21 15:46:02

标签: php

我正在尝试将php会话设置为在没有浏览器活动的情况下过期。 我试过阅读论坛,这里有stackoverflow而不能。 如果我们有浏览器活动,会话仍然有效。

2 个答案:

答案 0 :(得分:1)

您需要手动处理。大致沿着这些方向的东西:

if(!$_SESSION['started']) {
    // This is a new session, let's keep track of when it was started
    $_SESSION['started'] = time();
} else if (time() - $_SESSION['started'] > $maxlifetime) {
   // We've hit our max lifetime, session should be destroyed
   session_destroy();
}

请注意,用户在下一次页面加载之前不会意识到他们的会话已过期。如果您希望立即(或接近它)通知他们即使他们只是坐在页面上,那么您将需要使用某种ajax轮询来检查会话。

答案 1 :(得分:0)

您可以使用cron作业使非活动会话失效,或尝试以下操作:  1.将时间戳存储在会话变量中。  2.检查/更新页面加载时的变量。  3.如果时间戳太旧,请强制退出     网站/应用