Drupal Session似乎不合逻辑

时间:2013-10-04 21:08:45

标签: php session drupal drupal-6

我正在使用Drupal 6来执行一些电子支付工作。由于登录意味着浏览器可以访问用户敏感的财务信息,我希望确保它在非活动期后超时。

我尝试使用:

ini_set('session.cookie_lifetime',  600); //expire after 10 minutes of inactivity

然而,无论自登录后是否有任何活动,这都会在10分钟后将用户记录下来。

是否有不同的设置可供使用或修改此设置以使会话在不活动后过期而不是具有快速和快速的生命周期长度?

2 个答案:

答案 0 :(得分:0)

您需要实施自己的解决方案,只需更改设置就没有可靠的方法。如果您需要更多信息,请查看此答案How do I expire a PHP session after 30 minutes?

取自该问题的最佳答案:

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 1800)) {
    // last request was more than 30 minutes ago
    session_unset();     // unset $_SESSION variable for the run-time 
    session_destroy();   // destroy session data in storage
}
$_SESSION['LAST_ACTIVITY'] = time(); // update last activity time stamp

你也想设置:

ini_set('session.cookie_lifetime',  0);

除非他们关闭浏览器,否则它永远不会自行过期。

答案 1 :(得分:0)

Drupal允许用户在他们注销之前保持登录状态。这对你来说似乎不合逻辑,但是对于写大帖子或者愿意在暂停后继续写作很有意义:他们可能会感到失望,如果经过漫长的一天工作后他们提交帖子并得到错误,他们的会话已经过期了。

也就是说,您可以查看Automated logout模块,该模块似乎可以帮助您满足应用程序的要求。