Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用php禁止用户在注销后返回上一页,而不禁用浏览器上的“后退”按钮_Javascript_Php_Html - Fatal编程技术网

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

Javascript 使用php禁止用户在注销后返回上一页,而不禁用浏览器上的“后退”按钮,javascript,php,html,Javascript,Php,Html,我正在为我的作业创建一个简单的登录和注销,我正在使用$\u会话显示当前登录用户数据库中的用户名。登录和注销正在工作,但当按下浏览器的“后退”按钮时,它将返回到我以前注销的页面。因为在我注销时它已经被破坏了,当按下后退按钮时它会输出一个错误 尝试禁用“后退”按钮,但效果不佳,用户可能认为网页已损坏 samp.php <?php session_start(); if(isset($_POST['botLogin'])) { $host = 'localhost'; $u

我正在为我的作业创建一个简单的登录和注销,我正在使用$\u会话显示当前登录用户数据库中的用户名。登录和注销正在工作,但当按下浏览器的“后退”按钮时,它将返回到我以前注销的页面。因为在我注销时它已经被破坏了,当按下后退按钮时它会输出一个错误

尝试禁用“后退”按钮,但效果不佳,用户可能认为网页已损坏

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中替换“session_start();”用下面的代码


此代码将检查会话是否存在,如果不存在,则将用户重定向到登录页面

谢谢回答cg先生的问题。我刚刚创建了一个没有导航栏的登录页面,甚至我按下了后退按钮,它也不会显示错误未定义的索引,它只会返回到登录页面

记录它的过程

if($row['col_userName'] == $username AND $row['col_custPass'] = $password){
     $_SESSION['session_var_user'] = $username; // I created the session variable 
    echo "
            <script> 
              window.location.href = 'index.php';
            </script>
        ";
    }else{echo "failed";}
if($row['col\u userName']=$userName和$row['col\u custPass']=$password){
$\u SESSION['SESSION\u var\u user']=$username;//我创建了SESSION变量
回声“
window.location.href='index.php';
";
}否则{echo“失败”;}
导航栏中的代码

   <li class="nav-item">
        <a class = "justtextstyle" href="#">
            <?php 
               if(!isset($_SESSION['session_variable']))
               {
                   echo "<a class = 'justtextstyle' href='login.php'>Log In Here</a>";
               }
               else
               {
                   echo "Hi," . $_SESSION['session_variable'];
               }
           ?>
        </a>
    </li>  
  • "; } 其他的 { 回显“Hi,.$”会话[“会话变量]; } ?>
  • 我问题中的代码是不同的,但想法相同,因为那是实验性的php文件,这是我的实际任务。我总是先做实验性文件,因为我不想弄乱原始文件lol


    或者尝试将其放在导航栏中,表示如果未设置会话,它将重定向到索引,因为会话只有在成功登录后才会设置,如果您注销会话,即使您按下“上一步”按钮,它也不会返回到上一页,因为会话仍然未设置。

    您可以重定向它们
    if(empty($\u SESSION['SESSION\u var\u user']){header(…)
    。您应该散列用户密码并参数化该查询。它是sql可注入的,使用纯文本密码是一个很大的安全漏洞。
    if($row['col_userName'] == $username AND $row['col_custPass'] = $password){
         $_SESSION['session_var_user'] = $username; // I created the session variable 
        echo "
                <script> 
                  window.location.href = 'index.php';
                </script>
            ";
        }else{echo "failed";}
    
       <li class="nav-item">
            <a class = "justtextstyle" href="#">
                <?php 
                   if(!isset($_SESSION['session_variable']))
                   {
                       echo "<a class = 'justtextstyle' href='login.php'>Log In Here</a>";
                   }
                   else
                   {
                       echo "Hi," . $_SESSION['session_variable'];
                   }
               ?>
            </a>
        </li>