防止用户在注销后返回上一页而不使用 php 禁用浏览器上的后退按钮

我正在为我的作业创建一个简单的登录和注销,我使用 $_SESSION 来显示当前登录用户的数据库中的用户名。登录和注销工作正常,但是当浏览器的后退按钮被按下时,它会回到我之前注销的页面。因为当我注销时它已经是 session_destroy 它会在按下后退按钮时输出错误。


尝试禁用后退按钮但看起来不太好,用户可能认为网页坏了


samp.php


<?php

session_start();


if(isset($_POST['botLogin']))

  {

    $host = 'localhost';

    $user = 'root';

    $pass = '';

    $db = 'db_name';


    $conn = new mysqli($host, $user, $pass, $db);


    $username = $_POST['username'];

    $password = $_POST['password'];


    $result = $conn->query("SELECT * FROM tbl_name WHERE col_userName = '$username' AND col_custPass = '$password' ");


      if(mysqli_num_rows($result)==1)

      {

        $_SESSION['session_var_user'] = $username;

        header('Location:samp2.php');

      }

      else

      {

        echo "Username or password mismatch";

      }

  }

?>


<form action = "samp.php" method="post">

      <input type = "text" name = "username" placeholder="username">     

      <input type = "text" name = "password" placeholder="password">     

      <input type = "submit" name = "botLogin" value = "login">    

</form>

samp2.php


<?php

session_start();


echo "Hi," . $_SESSION['session_var_user'];


if(isset($_POST['logout']))

  {

    session_destroy();

    echo "<script>location.href='samp.php';</script>";         

  }

?>


<form action = "samp2.php" method="post">

  <input type="submit" name="logout" value="logout">

</form>

如果我在按下后退按钮时退出是否有可能它只会引导我再次登录页面而不是将我引导到上一页?


注销后按下后退按钮时出错:


注意:未定义索引:session_var_user in C:\xampp\htdocs\name\samp2.php 第 4 行 您好,


九州编程
浏览 285回答 2
2回答

墨色风雨

解决方法很简单,在samp2.php中替换'session_start();' 使用以下代码if (session_status() == PHP_SESSION_NONE) {session_start(); }if (isset($_SESSION['session_var_user'])) { }else {header("Location: /samp.php/"); }此代码将检查会话是否存在,如果不存在,则将用户重定向到登录页面

慕桂英4014372

谢谢先生回答。CG . 我刚刚创建了一个没有导航栏的不同登录页面,即使我按下后退按钮,它也不会显示错误未定义索引,它只会返回登录页面。登录过程if($row['col_userName'] == $username AND $row['col_custPass'] = $password){&nbsp; &nbsp; &nbsp;$_SESSION['session_var_user'] = $username; // I created the session variable&nbsp;&nbsp; &nbsp; echo "&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <script>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; window.location.href = 'index.php';&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </script>&nbsp; &nbsp; &nbsp; &nbsp; ";&nbsp; &nbsp; }else{echo "failed";}导航栏中的代码&nbsp; &nbsp;<li class="nav-item">&nbsp; &nbsp; &nbsp; &nbsp; <a class = "justtextstyle" href="#">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <?php&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if(!isset($_SESSION['session_variable']))&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo "<a class = 'justtextstyle' href='login.php'>Log In Here</a>";&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;else&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;{&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;echo "Hi," . $_SESSION['session_variable'];&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;}&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;?>&nbsp; &nbsp; &nbsp; &nbsp; </a>&nbsp; &nbsp; </li>&nbsp;&nbsp;我的问题中的代码不同但想法相同,因为那是实验性的 php 文件,这是我的实际作业。我总是先制作实验文件,因为我不想弄乱原始文件哈哈。或尝试将其放在导航栏中,表示如果未设置会话,它将重定向到索引,因为会话只会在成功登录后设置,如果您注销会话将取消设置,即使您按下后退按钮,它也不会返回您的上一页,因为会话仍未设置。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript