簡體   English   中英

使用AJAX檢查PHP會話是否存在或過期

[英]Check whether a PHP session exists or expired using AJAX

  1. 如何設置PHP會話時間,我正在嘗試如下,但我不認為它的工作原理

    ini_set("session.gc_maxlifetime", 600);

  2. 如何使用ajax(javascript)查明php會話是存在還是過期?

問候

對於#1,使用session_set_cookie_params() 600秒后過期

session_set_cookie_params(600)

(注意,與常規的setcookie函數不同, session_set_cookie_params使用你希望它生存的秒數,它不應該是time() + 600這是一個常見的錯誤)

對於2號,只需通過AJAX調用一個小腳本:

<?php
session_start()

if( empty($_SESSION['active']) ) {
     print "Expired"
}
else {
     print "Active"
}

?>

在Javascript方面(使用JQuery)

$.get('path/to/session_check.php', function(data) {
     if( data == "Expired" ) {
         alert("Session expired");
     } else if (data == "Active" ) {
         alert("Session active");
     }
 });

Shadow Wizard每次進行檢查時都會注意保持會話處於活動狀態。

但解決方案非常簡單。 訣竅是以大於會話生命周期的間隔執行AJAX請求。 因此,如果您建立15分鍾的會話超時,您可以每16或更多時間通過AJAX進行檢查。

為了使上述工作正常,會話超時是您應該手動實現的。 您可以閱讀有關如何設置會話持續時間的有用答案

希望這可以幫助您或任何正在尋找相同的人!

暫無
暫無

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

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