2012-12-01 190 views
0

由於這是新的,我試圖實現100秒後會話超時,如果用戶不點擊「任何其他鏈接」,即停留在該頁面上沒有任何活動..我使用以下的PHP腳本,但我想「如果」條件檢查每個腳本只完成一次,所以即使檢查違反了某些時候,也不會發生自動重定向..所以有一種方法(只使用PHP腳本),以便這次檢查在頁面上重複出現?php會話超時

if (isset($_SESSION['LAST_ACTIVITY']) and (time() - $_SESSION['LAST_ACTIVITY'] > 100)) 
{ 
    session_unset();      
    session_destroy();       
    header('Location: seesiontimeout.php'); 
} 

$_SESSION['LAST_ACTIVITY']變量已經被設置爲腳本的起點......

+0

你在''__SESSION ['LAST_ACTIVITY']中有什麼' –

+0

你可以在頁面本身使用setTimeout()並在任何活動時重置它。一旦啓動,您可以執行重定向。一旦提交任何內容,您仍應該檢查PHP。 –

回答

2

你問...

。所以有(只使用PHP腳本)的方式使那這次檢查 在頁面上反覆出現?

(強調我的)。

編號PHP在服務器上爲每個呈現動態HTML的請求運行一次。它不能只是空閒,以某種方式告訴瀏覽器,「嘿,你即將超時!」

您必須設置一個客戶端JavaScript函數來重複詢問服務器。

我有超時嗎?不。
我超時了嗎?不。
我超時了嗎?是的!重定向到超時頁面。

0

is there a way(using only php script) so that this time check occurs repeatedly on the page

不使用 「唯一的PHP」,但您可以使用AJAX在JavaScript中不斷在服務器上的PHP調用。

PHP完全在服務器上運行,它是而不是由客戶端的瀏覽器執行。因此,您必須告訴客戶端繼續與服務器進行檢查,以確定這樣的事情。