【问题标题】:Expiring session using session variable and javascript使用会话变量和 javascript 使会话到期
【发布时间】:2014-11-28 08:27:48
【问题描述】:

大家好,我想在 php 中动态检查登录用户的会话。

我目前使用:

$now = time();
if($now < $_SESSION['expire'])
{
//continue session
}
else
{
//exit
}

我想使用 javascript 实现相同的功能,并每 60 秒动态检查一次变量。有没有办法动态地做到这一点?

【问题讨论】:

  • 你可以使用ajax来检查一个php变量的值。
  • 您无法在客户端检查会话变量。但是,如果您知道会话到期时间有多长,则可以重置“会话访问”变量,并假设在上次“会话访问”之后足够的时间到期时会话已到期。但是,使用 AJAX 检查可能不是解决方案,因为每次发送 AJAX 请求时,都会刷新会话。
  • 我不喜欢使用 ajax 和 php/jquery/javascript。你能详细说明一下怎么做吗?
  • 比 ajax 和 js 更好的解决方案。 stackoverflow.com/questions/520237/…

标签: javascript php session


【解决方案1】:
<script type="text/javascript">
function checkSession() {
setInterval(function(){
     var now = Date.now();
     $.get('ajax.php?timestamp='+now,function(data){
        return true;
     });
},60000);
}
checkSession();
</script>

<?php 
    //In your ajax.php
    $timestamp = $_REQUEST['timestamp'];
    if($timestamp < $_SESSION['expire']) {
        //continue session
    } else {
        session_destroy();
    }
?>

【讨论】:

    猜你喜欢
    • 2010-09-12
    • 2012-09-19
    • 2013-08-07
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 2011-10-23
    • 1970-01-01
    相关资源
    最近更新 更多