Javascript 当用户处于非活动状态时,如何使PHP会话过期

Javascript 当用户处于非活动状态时,如何使PHP会话过期,javascript,php,ajax,session,Javascript,Php,Ajax,Session,如果页面上没有活动超过10到20分钟,我希望php会话过期。或者用户的可用时间超过20分钟。假设我们以登录为例,用户登录,20分钟后如果没有活动,则应使会话过期并重新重定向到登录页面 在会话中存储上次发出的请求 <?php $_SESSION['timeout'] = time(); ?> 在发生的每个请求中,检查他们在多长时间前提出了上一个请求(本例中为10分钟) 存储上次在会话中发出的请求 <?php $_SESSION['timeout'] = time()

如果页面上没有活动超过10到20分钟,我希望php会话过期。或者用户的可用时间超过20分钟。假设我们以登录为例,用户登录,20分钟后如果没有活动,则应使会话过期并重新重定向到登录页面

在会话中存储上次发出的请求

<?php
  $_SESSION['timeout'] = time();
?>

在发生的每个请求中,检查他们在多长时间前提出了上一个请求(本例中为10分钟)


存储上次在会话中发出的请求

<?php
  $_SESSION['timeout'] = time();
?>

在发生的每个请求中,检查他们在多长时间前提出了上一个请求(本例中为10分钟)


客户端解决方案:

您的页面:

<script type="text/JavaScript">
    var idleRefresh;
    idleRefresh = setTimeout("location.href = 'unset.php';",30000);
    windows.onmousemove = function() {
        clearTimeOut(idleRefresh);
        idleRefresh = setTimeout("location.href = 'unset.php';",30000);
    };
</script>

var idleRefresh;
idleRefresh=setTimeout(“location.href='unset.php';”,30000);
windows.onmousemove=函数(){
clearTimeOut(idleRefresh);
idleRefresh=setTimeout(“location.href='unset.php';”,30000);
};
unset.php:(取消设置所有会话变量/特定登录变量,并将用户重定向到登录页面)


客户端解决方案:

您的页面:

<script type="text/JavaScript">
    var idleRefresh;
    idleRefresh = setTimeout("location.href = 'unset.php';",30000);
    windows.onmousemove = function() {
        clearTimeOut(idleRefresh);
        idleRefresh = setTimeout("location.href = 'unset.php';",30000);
    };
</script>

var idleRefresh;
idleRefresh=setTimeout(“location.href='unset.php';”,30000);
windows.onmousemove=函数(){
clearTimeOut(idleRefresh);
idleRefresh=setTimeout(“location.href='unset.php';”,30000);
};
unset.php:(取消设置所有会话变量/特定登录变量,并将用户重定向到登录页面)


使用Jquery

html或php页面:

<body id="homepage" onload="set_interval()" onmousemove="reset_interval()" onclick="reset_interval()" onkeypress="reset_interval()" onscroll="reset_interval()">
注销页面

if(@$_REQUEST['opt']=='Logout')
    {
        unset($_SESSION['uid']);
        unset($_SESSION['username']);

    }
使用Jquery

html或php页面:

<body id="homepage" onload="set_interval()" onmousemove="reset_interval()" onclick="reset_interval()" onkeypress="reset_interval()" onscroll="reset_interval()">
注销页面

if(@$_REQUEST['opt']=='Logout')
    {
        unset($_SESSION['uid']);
        unset($_SESSION['username']);

    }

我本想在Arun的jquery解决方案中添加这一点,但还没有50%的声誉。我必须对他的代码进行一些修改以使其正常工作,例如:

timer = setInterval("auto_logout()", 300000);
需要更改为:

timer = setInterval( function(){ auto_logout() }, 300000);
我已将完全修订的代码包括在下面:

HTML:

正如Arun提到的,将timeout(改为)更改为您需要的任何值。在上面的示例中,我将其设置为10000,即仅10秒


希望这能有所帮助-再次感谢Arun发布原始代码。

我本想在Arun的jquery解决方案中添加此注释,但还没有50%的声誉。我必须对他的代码进行一些修改以使其正常工作,例如:

timer = setInterval("auto_logout()", 300000);
需要更改为:

timer = setInterval( function(){ auto_logout() }, 300000);
我已将完全修订的代码包括在下面:

HTML:

正如Arun提到的,将timeout(改为)更改为您需要的任何值。在上面的示例中,我将其设置为10000,即仅10秒

希望这能有所帮助-再次感谢Arun发布原始代码。

//JQUERY脚本;
var重置=60000;
var定时器=复位;
$('body')。在('click keyup mousemove',function()上{
定时器=复位;
});
//倒计时功能“ct”在您的注销按钮和
//到达设置超时后将重定向到注销操作;
函数ct(){
$('#so').text(计时器/1000+'秒注销');
定时器=定时器-1000;
如果(计时器==0){
window.location='logout.php';
}
}
//每1秒执行一次“ct”功能。
setInterval('ct()',1000)
/*注销按钮的CSS代码*/
#所以{
背景色:番茄;
填充:8px 20px;
颜色:#fff;
边界半径:4px;
文字装饰:无;
}
h3,#so{font-family:Segoe-UI;}

使用-移动光标、向上键和;单击
//JQUERY脚本;
var重置=60000;
var定时器=复位;
$('body')。在('click keyup mousemove',function()上{
定时器=复位;
});
//倒计时功能“ct”在您的注销按钮和
//到达设置超时后将重定向到注销操作;
函数ct(){
$('#so').text(计时器/1000+'秒注销');
定时器=定时器-1000;
如果(计时器==0){
window.location='logout.php';
}
}
//每1秒执行一次“ct”功能。
setInterval('ct()',1000)
/*注销按钮的CSS代码*/
#所以{
背景色:番茄;
填充:8px 20px;
颜色:#fff;
边界半径:4px;
文字装饰:无;
}
h3,#so{font-family:Segoe-UI;}


使用-移动光标、向上键和;单击
Related(相关):如果用户在30分钟后仍处于活动状态,这可能会帮助您解决问题。然后,他们必须根据您的情况重新登录。如果他们在页面上空闲(除非您专门使用javascript偶尔ping服务器),他们的会话将在指定的时间内过期。下面是一个详细的答案,您可以找到相关的答案:如果用户在30分钟后仍然处于活动状态,这可能会帮助您。然后他们将不得不根据您的条件重新登录。如果他们在页面上空闲(除非您专门使用javascript偶尔ping服务器),他们的会话将在指定的时间内过期。下面是一个详细的答案,您可以找到+1,但是
什么都不做
实际上应该是
$\u session['timeout']=time()
+1,但是
什么都不做
实际上应该是
$\u会话['timeout']=time()。如果用户在您的网站中不活动,则会自动注销并重定向登录页面。但我在php中查找相同的内容。如果用户在您的网站中不活动,则会自动注销并重定向登录页面。但我在php中查找相同的内容。