[英]Check whether a PHP session exists or expired using AJAX
如何設置PHP會話時間,我正在嘗試如下,但我不認為它的工作原理
ini_set("session.gc_maxlifetime", 600);
如何使用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.