我目前從PHP Web應用程序處理超時這樣:顯示超時警告中的jQuery
- 每一頁目前在PHP超時檢查,由用戶檢查對最後頁面加載當前時間。如果兩者之間的差異超過15分鐘,則用戶的會話被銷燬,創建新的會話,當前頁面位置被放置到會話上,並且用戶被重定向到登錄頁面。
- 每一頁頭有
<meta>
標籤其中15分5秒後刷新頁面(因此「呼叫」超時檢查)
我現在目前正在研究增加更多的控制的用戶,例如,如果他們碰巧在很長一段時間內在頁面上工作,並且正在考慮允許彈出窗口在超時前大約兩分鐘出現。然後彈出窗口可以選擇繼續會話(使AJAX調用刷新會話中的最後一個活動)或註銷。如果彈出窗口被忽略(例如,如果用戶位於不同的頁面上),用戶將被註銷。
根據Using Javascript to override or disable meta refresh tag,我將無法重置<meta>
標記,這可能意味着我必須刪除標記。 PHP/Javascript Session Timeout with warning的唯一答案建議使用JavaScript調用重定向到登錄頁面,但是可以通過禁用JavaScript來繞過這一點。
我想要做的是圍繞<meta>
重定向標記<noscript>
(因爲我使用的是HTML5,因此可以使用),這樣即使用戶不使用JavaScript,它們仍然會超時。這也將刪除<meta>
標記,以觸發用戶是否決定繼續他們的會話。
這種方法有意義嗎?我錯過了什麼嗎?還有另外一種更好的方法嗎?
我當前的代碼
<?php
require_once("include/session.php");
require_once("include/sessioncheck.php");
?>
<html>
<head>
<meta http-equiv="refresh" content="<?= TIMEOUT_MIN * 60 ?>" />
<!-- additional tags -->
</head>
<body>
<!-- content -->
</body>
</html>
會話超時配置已經存在於PHP配置中。 – MatRt 2013-02-28 23:22:18
@ user1073122 - 雖然看起來我可以在.htaccess文件中對其進行修改,但它看起來像是全局應用的(當我將爲不同的用戶組添加不同的超時時)。在任何情況下,我都希望在沒有用戶活動的情況下刷新頁面(這意味着用戶不一定會在任何地方點擊,並且可能已經離開計算機) – 2013-02-28 23:57:29
嘗試添加javascript befoer元標記以編輯元標記 – Vineet1982 2013-03-01 02:51:04