簡體   English   中英

銷毀會話PHP

[英]Destroying session PHP

閑置10秒鍾后,我使用此代碼結束會話:

ini_set('session.gc_maxlifetime', 10);
session_start();

if (isset($_SESSION['LAST_ACTIVITY']) && (time() - $_SESSION['LAST_ACTIVITY'] > 10)) {
    session_unset();
    session_destroy();
}
$_SESSION['LAST_ACTIVITY'] = time();

只有在閑置10秒鍾后刷新頁面時,它才有效。 如果我不刷新頁面或關閉瀏覽器,則該會話將永遠不會被破壞。 有人可以幫我解決這個問題嗎?

感謝您的建議。

現在,我還使用此JavaScript代碼在閑置10秒鍾后刷新,效果很好。 但是當我關閉瀏覽器會話時,仍然不會被破壞。

<body onmousemove = "canceltimer()"; onclick = "canceltimer()">
<script type="text/javascript">
    var tim = 0;
    function reload () {
        tim = setTimeout("location.reload(true);",10000);
    }

    function canceltimer() {
        window.clearTimeout(tim);
        reload();
    }
</script>

10秒后,您需要銷毀會話,然后重定向它們,如下所示:

session_destroy(); 
header("Location: logoutpage.php");

這將“刷新”頁面並破壞會話。

抱歉,我不清楚,但是您需要ajax調用,這是一個類似的問題。 我將稍后發布ajax。 抱歉。

一段時間后取消會話設置

這是ajax ...將超時設置為您指定的時間。 同樣,對不起,您不清楚。

function refresh() {
    $.ajax({
        type: 'GET',    // can be POST or GET
        url: 'page.php' // php script to call
    // when the server responds
    }).done(function(response) {
        console.log(response);
        // call your function automatically
        setTimeout(refresh, 5000);
    });
}

基本上,函數refresh每隔5000毫秒被調用一次。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM