目前,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
中答案 0 :(得分:4)
这很可能只需更改session.gc_maxlifetime
的值即可解决。您可以通过.htaccess,php.ini或甚至在您的脚本本身(session_start()
之前)
答案 1 :(得分:4)
我遇到了与客户相同的问题,并使用了上述建议,因为更改session.gc_maxlifetime无效。如果用户使用上述方法打开管理页面,它将永远不会超时,所以我建议添加超时以消除间隔:
(function($) {
var interval = setInterval(pingServer, 60000);
function pingServer() {
$.ajax({ url: location.href });
}
setTimeout(function() {
clearInterval(interval);
}, 1440000);
})(jQuery);
答案 2 :(得分:1)
我认为这样可行,正如用户所说,这是您可以在PHP和PHP.ini中进行的正常设置
如果您不能使用此功能,请尝试编辑您调用的网址
<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设置中的miss配置?
答案 3 :(得分:0)
对于opencart 1.5.x,只需打开/system/library/session.php并添加此行
ini_set('session.gc_maxlifetime',5400);//90 minute