2014-10-22 155 views
0

我怎麼能叫PHP FunctionBrowser Back button點擊或right click然後點擊BACK項目,然後阻止頁面時用戶仍然logged-in重定向到login page調用PHP函數,當瀏覽器後退按鈕點擊

我發現這個(Pressing back button redirects the logged user to log out?)防止頁面重定向至其他頁面時用戶點擊browser back button和用戶仍然登錄,但我不知道在哪裏把這些代碼和如何調用該函數。

有人能詳細解釋這來完成我的問題或爲了更好的理解提供一些DEMO(的jsfiddle)?

+0

沒有可靠的方法來做你想做的。 – zerkms 2014-10-22 10:17:46

+0

您是否只需要在某個頁面上或者只要按下後退按鈕或後臺事件在瀏覽器中觸發? – 2014-10-22 10:18:00

+0

@AresDraguna僅限特定頁面(僅限一頁)。 – Waelhi 2014-10-22 10:18:24

回答

1

你可以使用一個頭重定向登錄頁面上,以檢查用戶是否登錄,但是這會不會有什麼頁面數據被髮送之前被稱爲:

if(isset($_SESSION['username'])){ 
    header("Location: home.php"); 
} 
+0

我想象他正在處理索引頁面上的登錄,這就是爲什麼當他回來時他看到「頁面過期」消息。但使用單獨的登錄頁面和重定向是一種更好的方法+1 – andrew 2014-10-22 10:31:51

1

你可以嘗試使用這個:

jQuery(document).ready(function($) { 

    if (window.history && window.history.pushState) { 

    window.history.pushState('forward', null, './#forward'); 

    $(window).on('popstate', function() { 
     alert('Back button was pressed.'); //here you know that the back button is pressed 
    }); 

    } 
}); 

你可以找到答案Here

這個做什麼,它與JS檢查,如果後退按鈕是推動,如果是這樣,你可以執行任何你想要的動作。如果重定向是你所需要的,請使用window.location = "http://www.yoururl.com"; OR window.navigate("http://www.yoururl.com"); //works only with IE

或者,你可以把一個jQuery的AJAX調用那裏,發送發佈請求返回到特定的頁面,你可以檢查他們喜歡:

if(isset($_POST['ajax_response_from_js_script']) { 
    //call PHP function 
} 

希望它有幫助!
繼續編碼!戰神。

+0

我試過你的代碼,它適用於不同的瀏覽器,但除Safari Safari(v5.1.7) – Waelhi 2014-10-22 10:40:32

相關問題