我们有一个 OpenCart 站点(版本 2.3.0.2)。当客户登录时,我希望他们在指定时间不活动后被迫注销,例如30 分钟我观察到,即使客户处于非事件状态超过一个小时,他们也永远不会注销。
在根目录下的 php.ini 上,我修改了超时行:
session.gc_maxlifetime = 3600;
我放置了一个带有代码的 info.php 文件:
<?php
$maxlifetime = ini_get("session.gc_maxlifetime");
echo "max=".$maxlifetime;
echo "<hr>";
phpinfo();
?>
phpinfo() 中的 echo 和 session.gc_maxlifetime 的输出均显示为 1440(24 分钟)。
因此客户要么在 30 分钟或 24 分钟后注销。无论哪种方式,我都希望客户在一段时间不活动后注销。我该怎么做?
最佳答案
添加它的最佳方法是使用使用当前时间设置的 session 。
注意:最好创建 vqmod 或 modification section取决于您使用的 Opencart 版本,以免影响 Opencart Core。
请参见以下代码:
if (!isset($this->session->data['CREATED'])) {
$this->session->data['CREATED'] = time();
} else if (time() - $this->session->data['CREATED'] > 1200) { //time in seconds
session_destroy();
$this->logout();
} else if (isset($this->session->data['CREATED'])) {
$this->session->data['CREATED'] = time();
}
关于php - 如何让我的 OpenCart 客户在一段时间不活动后注销?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43037453/