3

目前 OpenCart 中的 Admin 会话大约需要 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

4

4 回答 4

4

这很可能可以通过更改 的值来解决session.gc_maxlifetime。您可以通过 .htaccess、php.ini 甚至在您的脚本本身(在 .htaccess 之前session_start())更改它

于 2012-09-12T12:11:45.940 回答
4

我与客户遇到了同样的问题并使用了上述建议,因为更改 session.gc_maxlifetime 不起作用。如果用户使用上述方法打开管理页面,它永远不会超时,所以我建议添加一个超时来终止间隔:

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

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

  setTimeout(function() {
    clearInterval(interval);
  }, 1440000);
})(jQuery);
于 2012-11-02T09:51:57.380 回答
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 设置中的缺失配置?

于 2012-09-12T11:04:17.427 回答
0

对于 opencart 1.5.x 只需打开 /system/library/session.php 并添加这一行

ini_set('session.gc_maxlifetime',5400);//90 minute
于 2019-04-06T10:38:34.207 回答