2015-10-03 73 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