我正在使用php建立一个在线测试平台。问题是测试时间超过60分钟。在我的系统中,用户登录并进行测试。通常当用户提交测试答案时,他发现他已经退出。
由于用户的空闲系统,似乎会破坏会话ID。如何参加这个问题?
我不想在这段时间之后将变量发送到垃圾箱,而是希望确保在这段时间内它们不会被发送到垃圾箱。
答案 0 :(得分:2)
我猜你可以每隔几分钟向服务器发送一次ajax调用以保持连接。
这样,用户的sesseion将不会过期,直到测试答案被汇总!
function stayAlive(){
$.ajax({
url: 'theURL',
type: 'post',
data: {'can also send data'},
success: function(){ /* now you are sure the connection is there */ }
});
setTimeout(stayAlive, 60000); // make the call every minute
}
stayAlive();
答案 1 :(得分:0)
//试试这个。
ini_set('session.gc_maxlifetime', 10800); # 3 hours
session_set_cookie_params(10800);
或
https://prajapatinilesh.wordpress.com/2009/01/14/manually-set-php-session-timeout-php-session/