过期如何设置PHP的会话超时,我试图像下面,但我不认为它的工作原理检查是否PHP会话存在,或使用AJAX
ini_set("session.gc_maxlifetime", 600);
如何找出一个php会话是否存在或使用ajax(javascript)过期?
问候
过期如何设置PHP的会话超时,我试图像下面,但我不认为它的工作原理检查是否PHP会话存在,或使用AJAX
ini_set("session.gc_maxlifetime", 600);
如何找出一个php会话是否存在或使用ajax(javascript)过期?
问候
对于#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");
}
});
Shadow Wizard什么Shadow Wizard评论有关保持会话活着每次你做检查是真实的。
但是解决方案很简单。诀窍是以大于会话生存时间的间隔执行AJAX请求。因此,如果您建立15分钟的会话超时时间,则可以通过AJAX每16或更多次进行检查。
为了使上述工作,会话超时是你应该手动实现的。你可以阅读这个有用的answer关于如何设置会话持续时间。
希望这可以帮助你或任何正在寻找相同的人!
关于第一个但不是第二个的不知道如何:如果您定期发送AJAX请求,则会保持会话正常运行。 – 2011-04-08 19:02:05
@Shadow - 虽然会话被清除,然后重新创建一个新的会话,但技术上为true。他可以使用AJAX来检查特定的值 – Cfreak 2011-04-08 19:10:01
@Cfreak是真实的,但是如果AJAX每分钟发送一次,它就会保持会话永远活着,据我所知。 – 2011-04-08 19:12:04