2015-10-03 71 views
-4

我正在PHP項目中工作,我需要關於註銷頁面的幫助。目前,我的頁面與thisPHP:在註銷頁面中創建註銷按鈕

因此,當我點擊退出按鈕時,我不再登錄,並且我被重定向到登錄頁面。我想要做的是創建一個帶退出按鈕的退出頁面,以允許用戶獲得有關退出的確認消息。我登出代碼:

unset($_SESSION["auth"]); 
header("Location: sign-in.php"); 

所以我需要的是當我點擊退出按鈕(頭),我重定向到登出頁面用登出按鈕(點擊後,我想那該用戶不再登錄)。

回答

1

使用session_destroy();擦除會話和header('Location: sign_out.php');將用戶重定向到sign_out.php。如果您不希望執行header('Location: sign_out.php');之後的代碼,則應在標頭()後面使用exit;。功能。

與感謝icecub:

使用if(isset($_POST['submit'])) session_destroy();

+0

是的,我知道該怎麼做,但我想要的是直接創建登出頁面,該頁面中,創建一個登出boutton,你知道嗎? –

+2

只需用一個按鈕創建一個表單,並使用'if(isset($ _ POST ['submit'])){...}'這樣php部分只會在點擊按鈕後觸發。這只是基本編碼@ Uptop14 – icecub

+0

確認?在這種情況下,你可以移動session_destroy();到確認頁面並執行,如果用戶確認。 – x13

2

好吧,作爲promissed一個全功能的腳本。這將顯示一個按鈕,並要求用戶確認是否要在實際登錄前註銷。如果您願意,您可以使用其他功能和佈局來熟練使用它。

<?php 
session_start(); 

if(isset($_POST['logout'])){ 
    session_destroy(); 

    #uncomment if you wish to redirect the user somewhere 
    //Header("Location: index.php"); 
} 

?> 
<!DOCTYPE HTML> 
<html lang="en"> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
     <title>Logout</title> 
     <script type="text/javascript"> 
     document.addEventListener("DOMContentLoaded", function(){ 
      document.getElementById('form').addEventListener("submit", function(event){ 
       event.preventDefault(); 

       var form = document.getElementById('form'); 
       var log = confirm("Are you sure you wish to logout?"); 

       if(log){ 
        form.innerHTML += "<input type='hidden' name='logout' value='0' />"; 
        form.submit(); 
       } else { 
        //You could redirect the user away from the 
        //logout page here if you want to or something 
        return false; 
       } 
      }); 
     }); 
     </script> 
    </head> 
    <body> 
     <form method="POST" action="" id="form" accept-charset="utf-8"> 
      <input type="submit" value="Logout" /> 
     </form> 
    </body> 
</html> 
+0

好吧,應該現在工作。出於某種原因,在preventDefault之後提交表單會使其丟失提交按鈕的名稱。所以爲此做了一個小的解決方法。 – icecub

+0

太棒了!感謝的人 –

+0

很好地完成了,這確實是一個很好的解決方案 – x13