2011-06-20 108 views
0

我有一個頁面,我想重定向到登錄頁面,如果用戶不活動的半小時。我是jQuery的新手,並且花了我一段時間才弄到這麼遠。 所以基本上用戶登錄他們被重定向到主頁。我在主頁上運行的jQuery每隔10秒發佈到check_time.php頁面。如果他們已經停用了半小時以上,那麼會話將被銷燬並被重定向到登錄頁面。 除了檢查從check_time.php頁面返回的「數據」的值之外,我有一切工作。讀取從jQuery返回的數據.post

這裏是主頁上的代碼。

ini_set('session.gc_maxlifetime',1800); 
ini_set('session.gc_probability',1); 
ini_set('session.gc_divisor',1); 
session_start(); 
if($_SESSION['admin_login'] != $password){ 
    header('Location: index.php'); 
    exit(); 
} 
if(isset($_SESSION['last_activity']) && (time()-$_SESSION['last_activity'] >1800)){ 
// last request was more than 30 minates ago 
session_destroy(); // destroy session data in storage 
session_unset();  // unset $_SESSION variable for the runtime 
    header('Location: index.php'); 
    exit(); 
} 
$_SESSION['last_activity'] = time(); // update last activity time stamp 
?> 


<script src="jquery.min.js" type="text/javascript"></script> 
<script type="text/javascript">  

function timedCount(){   
    $.ajax({ 
     type: 'POST', 
     url: "check_time.php", 
     success: function(data){ 
     if (data == "LOGOUT") { 
    window.location = 'index.php'; 
     } 
} 
}); 
setTimeout("timedCount()",10000); 
}; 

</script> 

這是對check_time.php

<?php 

    session_start(); 
    if (isset($_SESSION['last_activity'])){ 
     if(time() - $_SESSION['last_activity'] > 1800){ 
      session_unset(); 
      session_destroy(); 
      echo "LOGOUT"; 
     } 
    }else{ 
     echo "LOGOUT"; 
    } 
?> 

代碼上週我問這個同樣的問題,我想後我最新的代碼,所以我說的新問題。我真的非常感謝你的幫助!!!!!

+0

你應該接受一些從以前的問題的答案的! – Patricia

+1

在這兩種情況下,你都會意識到你在迴應相同的字符串,對嗎? –

+0

「上週我問了同樣的問題,我想發佈我的最新代碼,所以我提出了一個新問題。」請不要**在您更新前一個問題時開始提出新問題。編輯前一個,它會將它撞到首頁。 –

回答

0

嘗試:

if (jQuery.trim(data) == "LOGOUT") 
{ 
    ... 
} 
+0

謝謝你,這正是什麼我需要!!!你真棒!!! – PeggyMe