PHP 不活动超时和 session_status()

PHP inactivity timeout and session_status()

我试图做一些保护性的事情来防止页面在 php 页面空闲并且会话因不活动而过期时访问数据库。我将其中一些基于 session_status() 并且我对此有疑问。

使用警报和 console.log,我发现 php 和 js 代码似乎没问题。当我人为地注入 session_status() 值时,我得到了我期望的结果。

问题似乎是 session_start() 总是 returns 2(可用),即使在会话超时后也是如此。

我不应该期望 system_status 在不活动超时后自动更新吗?有没有比 session_status() 更好的方法来检查会话状态?

这是 'onclick' 函数,当单击按钮时,returns '2' 在过期页面上 system_status() :

$("#save-to-database").click(function () {

    var active = <?php echo session_status(); ?>;

    if(active == 2) {  //the session is active, do the sort & save

       saveStuff();

    } else {  // the login has expired, abandon this and reload index.php

        window.location.replace("index.php?artist=" + <?php echo $artist ?>);

    }
});

要做到这一点还有很长的路要走,但效果很好。

function isSessionActive() {
    session_start();
    $lastActivity=$_SESSION['lastActivity'];
    if ($lastActivity!=null && ($lastActivity+(10*60) > time())) {
        $_SESSION['lastActivity']=time();
        return true;    
    } else {
        deleteSession();
        return false;
    }
}

function deleteSession() {
    session_start();
    setcookie("PHPSESSID", "", time() - 3600, '/');
    session_unset();
    session_destroy();
}