如何设置php会话时间,我正在尝试如下,但我认为它不起作用
ini_set("session.gc_maxlifetime", 600);
如何使用ajax(javascript)查明php会话是存在还是已过期?
此致
答案 0 :(得分:8)
对于#1使用session_set_cookie_params()
。在600秒后过期
session_set_cookie_params(600)
(注意与常规setcookie
功能不同,session_set_cookie_params
使用您希望它生存的秒数,它不应该是time() + 600
,这是一个常见的错误)
对于数字2,只需通过AJAX调用一个小脚本:
<?php
session_start()
if( empty($_SESSION['active']) ) {
print "Expired"
}
else {
print "Active"
}
?>
在Javascript端(使用JQuery)
$.get('path/to/session_check.php', function(data) {
if( data == "Expired" ) {
alert("Session expired");
} else if (data == "Active" ) {
alert("Session active");
}
});
答案 1 :(得分:2)
每次进行检查时,Shadow Wizard评论的关于保持会话活动的内容都是正确的。
但解决方案非常简单。诀窍是以大于会话生命周期的间隔执行AJAX请求。因此,如果您建立15分钟的会话超时,您可以每16个或更多时间通过AJAX进行检查。
为了使上述工作正常,会话超时是您应该手动实现的。您可以阅读此有用的answer有关如何设置会话持续时间的信息。
希望这可以帮助您或正在寻找同样的人!