编程语言
首页 > 编程语言> > php – 如何让我的OpenCart客户在一段时间不活动后退出?

php – 如何让我的OpenCart客户在一段时间不活动后退出?

作者:互联网

我们有一个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分钟后退出.无论哪种方式,我都希望客户在一段时间不活动后退出.我该怎么做呢?

解决方法:

添加此功能的最佳方法是使用使用当前时间设置的会话.NB:最好根据您使用的Opencart版本创建vqmod或modification section,以免影响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,opencart2-x
来源: https://codeday.me/bug/20190717/1487160.html