OpenCart - 如何增加管理员会话超时时间?

3

目前OpenCart中的管理员会话时间大约为30秒。我想知道是否有PHP文件或其他方法可以增加登录超时会话的时间?

目前有人告诉我这个解决方案有效,但实际上并不是:

<script type="text/javascript">
function pingServer() {
    $.ajax({ url: location.href });
}
$(document).ready(function() {
    setInterval('pingServer()', 60000);
});
</script>

该文件已经放置在admin/view/template/common/header.tpl中。


这可能是您的托管服务提供商的问题。与他们联系,询问是否可以增加,如果您使用 cPanel,则还可以在其中配置此服务。 - crmpicco
我使用NGinx - 我通过Rackspace完全拥有我的云服务器的root访问权限。它是专用的 - 我们自己管理ubuntu php fast-fpm服务器。 - TheBlackBenzKid
4个回答

4

我曾经和一位客户遇到了相同的问题,并采用了上述建议,因为更改session.gc_maxlifetime并没有起作用。如果用户使用以上方法保持管理页面打开状态,则它永远不会超时,因此我建议添加一个超时来终止间隔:

(function($) {
  var interval = setInterval(pingServer, 60000);

  function pingServer() {
      $.ajax({ url: location.href });
  }

  setTimeout(function() {
    clearInterval(interval);
  }, 1440000);
})(jQuery);

你要把这个脚本添加到哪里? - Milad Abooali

4

通过更改session.gc_maxlifetime的值,很可能可以简单地解决此问题。您可以通过.htaccess、php.ini甚至在脚本自身中(在session_start()之前)更改此值。


这该怎么做呢?因为我使用的是NGinx - 我通过Rackspace拥有完全的根访问权限来访问我的云服务器。 - TheBlackBenzKid
1
如果您想全局设置超时时间,只需找到您的php.ini文件(执行phpinfo()函数以显示当前配置,其中应显示php.ini路径)。然后编辑您的php.ini文件,将该值设置为所需数字(以秒为单位,因此一天将是86400秒)。然后保存并重新启动您的http服务器,就可以完成设置了。 - Jay Gilford

1

我认为这会起作用,因为一个用户说过,这是你可以在PHP和PHP.ini中进行的正常设置。

如果您无法使用此功能,请尝试编辑您调用的URL。

<script type="text/javascript">
function pingServer() {
    $.ajax({ url: "/ping.php" });
}
$(document).ready(function() {
    setInterval('pingServer()', 60000);
});
</script>

而在文件ping.php中,您有。

<?php
   session_start();
   $_SESSION['last_ping'] = time();
?>

强制 PHP 更新您的服务器端会话 cookie。

这也可能是 OpenCart 设置中的错误配置吗?


谢谢你也。我已经做好了这个,还有 .php ini 编辑。 - TheBlackBenzKid

0

对于OpenCart 1.5.x,只需打开/system/library/session.php并添加此行

ini_set('session.gc_maxlifetime',5400);//90 minute

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接