簡體   English   中英

PHP:單擊“后退”按鈕仍將重定向到上一頁

[英]PHP: Clicking back button still redirects to the previous page

PHP真的很新。 我有一個登錄頁面,它直接指向索引頁面。 在索引頁面上有一個注銷按鈕。 因此,當我單擊注銷時,它將重定向到登錄頁面,並在我單擊“后退”按鈕時取消設置$ _SESSION。 但這不會破壞會話。 它仍然將我重定向到索引頁面。 但是已經有未設置的值。 好像session_destroy(); 不管用。 如果有人可以幫助我,那真是太好了。 謝謝!

這是我的login.php

<?php 
 require('session.php'); 
?>

<html>
<head>
<!-- CSS -->
<link rel="stylesheet" href="css/style-login.css">
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

</head>
<body>
    <div class="header">
        <img src = "img/usc_logo.png">  
    </div>
    <div class="box">
        <form id="loginform" class="form-horizontal" role="form" action = "" method = "POST">       
            <div style="margin-bottom: 25px" class="input-group">
                <span class="input-group-addon"><i class="glyphicon glyphicon-user"></i></span>
                    <input type="text" class="form-control" name="username" value="" placeholder="ID Number" required/>                                        
            </div>                 
            <div style="margin-bottom: 25px" class="input-group">
                <span class="input-group-addon"><i class="glyphicon glyphicon-lock"></i></span>
                    <input type="password" class="form-control" name="password" placeholder="Password" required>
            </div>
            <div style="margin-top:10px" class="form-group">
                                <!-- Button -->
                <div class="col-sm-12 controls">
                    <input class="submit-1" type = "submit" value = " Log in " name= "submit"/><br/><br/>
                    Not a member yet?
                    <a href="register.php" class="button">Register</a><br/><br/>
                        <center>
                        <span style='color:#e60000; font-size:15px;'><b><?php echo $error; ?></b></span>
                        </center>
                </div>
            </div>     
        </form>
    </div>

    <!-- JS -->
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>

這是我的index-admin.php

 <?php 
 require('session.php'); 
 ?>

<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta name="description" content="">
    <meta name="author" content="Mark Otto, Jacob Thornton, and Bootstrap contributors">
    <meta name="generator" content="Jekyll v3.8.5">
    <title>Admin DCIS</title>

    <link rel="canonical" href="https://getbootstrap.com/docs/4.3/examples/album/">

    <!-- Bootstrap core CSS -->
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">


     <style>
      .bd-placeholder-img {
        font-size: 1.125rem;
        text-anchor: middle;
        -webkit-user-select: none;
        -moz-user-select: none;
        -ms-user-select: none;
        user-select: none;
      }

      @media (min-width: 768px) {
        .bd-placeholder-img-lg {
          font-size: 3.5rem;
        }
      }
    </style>
    <!-- Custom styles for this template -->
    <link href="album.css" rel="stylesheet">
  </head>
  <body>
    <header>
  <div class="collapse bg-dark" id="navbarHeader">
    <div class="container">

    </div>
  </div>
  <div class="navbar navbar-dark bg-dark shadow-sm">
    <div class="container d-flex justify-content-between">
      <a href="#" class="navbar-brand d-flex align-items-center">   
        <strong>Hello, <?php echo $_SESSION['user_role'] ?></strong>
      </a>
      <a href="logout.php" class="btn btn-danger">Logout</a>    
    </div>
  </div>
</header>

<main role="main">

   <section class="jumbotron text-center">
    <div class="container">
      <h1 class="jumbotron-heading">Name of Requestee</h1>

        <button href="#" class="btn btn-primary my-2">Accept</button>
        <button href="#" class="btn btn-secondary my-2">Reject</button>
      </p>
    </div>
  </section>


<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js" integrity="sha384-UO2eT0CpHqdSJQ6hJty5KVphtPhzWj9WO1clHTMGa3JDZwrnQq4sF86dIHNDz0W1" crossorigin="anonymous"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script>
</body>
</html>

這是logout.php

<?php
session_start();
session_unset();
session_destroy();
header('Location: login.php');
?>

如果需要,這是我的session.php

    <?php
require("dbconnector.php");
    $error="";
    session_start();
    if(isset($_POST['submit'])){    
        require ('dbconnector.php');    
        $query = "SELECT * FROM user WHERE username = '{$_POST['username']}' AND password = '{$_POST['password']}'";
        $con = mysqli_query($conn, $query);
        if ($con->num_rows == 1){
            $row = mysqli_fetch_assoc($con);
            $_SESSION['user_role'] = $row['user_role'];

            mysqli_close($conn);
            if ($_SESSION['user_role'] == 'Admin'){
                header('Location: index-admin.php');
             }
            elseif($_SESSION['user_role'] == 'Student') {
                header('Location: index.php');
            }
        }   
        else{
            $error = "ID Number or Password is Invalid";
            header("refresh: 5");
        }
     }
?>

您需要在客戶端正確銷毀會話和會話的cookie。 我建議不要在登錄頁面上寫這個,而應該在特定頁面(例如logout.php)上寫,該頁面將重定向到login.html。

<?php 
    session_start(); // Start by calling the session.
    $_SESSION = array(); // Reset the session's variables.
    $params = session_get_cookie_params();
    setcookie(session_name(), '', time() - 42000, $params["path"], $params["domain"], $params["secure"], $params["httponly"]); //Invalids session's cookie.
    session_destroy(); //Finally destroy it.
    //If you want to redirect
    header("Location: <URL>");
?>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM