如何使注销按钮在HTML中正常工作

时间:2017-06-29 06:59:52

标签: php

我设计了一个网站,子菜单中有一个注销选项。代码是HTML格式,在这里: -

p:graphicImage

现在这成功地将我带回了adminlogin.php页面,但之后每当我按下Web浏览器顶部的后退按钮时,我会在按下注销按钮之前再次转到该页面。但是如果我按下退出按钮就不会发生这种情况,那么除非我再次登录,否则无法返回该页面

2 个答案:

答案 0 :(得分:1)

  

退出后避免浏览器后退按钮:

  

您必须添加每个页面的顶部,以检查用户是否已登录   如果没有,则应将它们重定向到登录页面:

示例:

<?php 
      if(!isset($_SESSION['username']) && !isset($_SESSION['useremail'])){

       header("Location: login.php");  // redirect to login page or index page if email and username is not set in session
  } 

?>
  

现在在退出页面上,只需取消设置usernameuseremail   会话变量,并销毁会话或(Cookies)。你设定了什么。

示例:

 <?php
    if(isset($_GET['logout'])) {  
    session_start();
    session_destroy();
    unset($_SESSION["username"]);
    unset($_SESSION["useremail"]);

    header('Location: index.php');
    exit;
    }
 ?>
  

用户登录后所有页面的工作代码: Home.php about.php contact.php等。

示例:

<?php 
// After User Login and come to home page.

 require 'database_conn.php'; // Connection
 session_start();    // Session start
?>


<?php

// If User is Not Login Then Redirect to `index` Page Automatically

//if(!isset($_SESSION['username']) && !isset($_SESSION['useremail']))

if(!isset($_SESSION['useremail'])){

    header("Location: index.php");
    // Redirect to index page if email is not set in session

}
?>
  

工作代码注销用户: Logout.php

示例:

<?php 
// After User Click On Logout page.
 require 'database_conn.php'; // Connection
 session_start();    // Session start
?>


 <?php
    if(isset($_POST['logout'])) {  

    if(isset($_SESSION['useremail'])){

     unset($_SESSION["useremail"]);
     session_destroy();
     session_unset();    
     header('Location: index.php');

      }
    }
 ?>
  

简单退出按钮

<a href="logout.php">Logout</a>
  

<强> logout.php

<?php
if(isset($_GET['logout'])) { 

session_start();
session_destroy();
header('Location: login.php');
exit;
}
?>
  

或者如果Cookie设置则

<?php
    if(isset($_GET['logout'])) {    
    unset($_COOKIE['access_token']);
    header('Location: login.php');    
    exit;

    }
?>

答案 1 :(得分:0)

您需要会话才能执行此操作。 所以基本上当你登录时,你需要设置会话变量,如

$_SESSION['loged_in']=1; // set session with desired name 

在注销时,您需要销毁此会话值

 unset($_SESSION["loged_in"]); // unset specific session 

session_destroy();  // destroy al

最重要的部分是您需要在每个页面上检查此会话值,而不希望用户登录。例如

 if(isset($_SESSION['loged_in']) && !empty($_SESSION['loged_in'])) {
     redirect('login.php'); // redirect to log in page 
}