Jai*_*jr. 3 php opencart opencart2.x
我们有一个OpenCart站点(版本2.3.0.2).当客户登录时,我希望他们在非活动状态达到指定时间后被强制退出,例如30分钟.我观察到,即使客户闲置超过一个小时,他们也永远不会退出.
在根目录上的php.ini上,我修改了超时行:
session.gc_maxlifetime = 3600;
Run Code Online (Sandbox Code Playgroud)
我放置了一个info.php文件,其中包含以下代码:
<?php
$maxlifetime = ini_get("session.gc_maxlifetime");
echo "max=".$maxlifetime;
echo "<hr>";
phpinfo();
?>
Run Code Online (Sandbox Code Playgroud)
对于phpinfo()中的echo和session.gc_maxlifetime,输出显示1440(24分钟).
因此,要么客户在30分钟或24分钟后退出.无论哪种方式,我都希望客户在一段时间不活动后退出.我该怎么做呢?
添加此功能的最佳方法是使用使用当前时间设置的会话.
注意:最好根据您使用的Opencart版本创建vqmod或修改部分,以免影响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();
}
Run Code Online (Sandbox Code Playgroud)