如果页面上没有活动,则使用ajax和php自动注销

问题描述 投票:0回答:1

我已经编写了php和ajax代码,如果在特定时期内没有任何活动,我想在其中注销用户。我已经设定会话超时仅60秒,仅用于测试。当前代码无法正常工作,并且60秒后似乎没有注销。

A行,我收到错误意外令牌';'

php:

// Logout
<?php
    if (isset($_GET['action'])  && $_GET['action'] == "logout")  {
        unset($_SESSION['pageadmin']);
        header('location: /mno.php');
        exit();
    }
?>

js:

<script>
    jQuery(document).ready(function ($) {

    let lastActivity = <?php echo $_SESSION['LAST_ACTIVITY']; ?>;  // Line A

    let now = <?php echo time(); ?>;

    let logoutAfter = 60;  // I am setting 60 seconds for demo purpose. 

    let timer = setInterval(function () {
        now++;
        let delta = now - lastActivity;

        if (delta > logoutAfter) {
            clearInterval(timer);
            //DO AJAX REQUEST TO close.php
            $.ajax({
                url: "/mno.php",
                type: 'GET', // GET also fine
                data: {action:'logout'},
                success: function(data){
                    console.log("I am inside success");    // Line B
                    alert(data);
                },
                error: function (jqXHR, textStatus, errorThrown) {
                    alert(textStatus);
                }
            });
        }
    }, 1000); 
    });
</script>

我进行了一些调试,并将console.log放置在B行只是为了进行测试,我的代码已到达该行。

编辑1:上面的所有代码都在php文件中。

javascript php jquery ajax session-timeout
1个回答
0
投票

您需要在A行周围加上引号,以便它像JS文件中的字符串一样回显

let lastActivity = "<?php echo $_SESSION['LAST_ACTIVITY']; ?>";  // Line A
© www.soinside.com 2019 - 2024. All rights reserved.