如何在 php 中的网站上闲置 5 分钟后自动销毁 Session [重复]

Posted

技术标签:

【中文标题】如何在 php 中的网站上闲置 5 分钟后自动销毁 Session [重复]【英文标题】:How to destroy Session automatically after 5 minutes of inactivity on website in php [duplicate] 【发布时间】:2014-03-15 10:43:55 【问题描述】:

我正在使用此代码块进行手动注销,但我希望在网站不活动 5 分钟后自动注销。怎么做? 谢谢

<?php
session_start();
error_reporting(E_ALL);
ini_set('display_errors', '1');
session_destroy();

if(!session_is_registered('username')) 
  header("location: logout_msg.html");
 else 
  print "<h2>Could not log you out, sorry the system encountered an error.</h2>";


exit();
?> 

【问题讨论】:

***.com/questions/572938/… 【参考方案1】:

您可以尝试使用$_SESSION['CREATED'] 之类的方法来存储时间戳,然后检查您的值是否是在$_SESSION['CREATED'] + 300 之前创建的。

【讨论】:

【参考方案2】:

在每次网页浏览时保存会话中的当前时间戳。如果当前时间戳与会话值的差异超过五分钟,请检查该值并使他们的会话无效。

【讨论】:

【参考方案3】:

这完全取决于您如何定义不活动。我做这样的事情

if ($_SESSION['LAST_ACTIVITY'] < time() - (60 * 5)) 
    // logout


$_SESSION['LAST_ACTIVITY'] = time();

【讨论】:

$_SESSION['LAST_ACTIVITY'] 会做什么? 在检查最后一次页面加载是否在 5 分钟前之后,设置每次页面加载的当前时间戳。

以上是关于如何在 php 中的网站上闲置 5 分钟后自动销毁 Session [重复]的主要内容,如果未能解决你的问题,请参考以下文章

mysql闲置8小时后,自动关闭连接,再对数据库进行操作就会出问题,如何解决

Heroku - 旋转起来

如何在 30 分钟后使 PHP 会话过期?

用于快速会话的 Ephemeral 和 MaxAge

小白如何一分钟发布自己的heco或者bsc代币(带销毁,分红机制)

VMware vRealize Operations 闲置 30 分钟后会出现 UI 会话超时