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に配置されています

4

4 に答える 4

4

これは、の値を変更するだけで解決できる可能性がありますsession.gc_maxlifetime。これは、.htaccess、php.iniを介して、またはスクリプト自体(の前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 に答える