首页 > 解决方案 > $_SESSION['login_user'] 不工作

问题描述

我试图找出问题所在,但我做不到。基本上我有登录到管理区域的 index.php 和 admin.php,它是管理区域的主页。如果我从 admin.php 页面中删除 SESSION,则登录本身可以工作,但我可以在不登录索引的情况下访问页面 admin.php,但是如果我在登录后将 SESSION 添加到 admin.php,它会直接进入 else 在admin.php 页面结束。

当然,我在 SESSION 上失败了,但我不知道是什么。

索引.php

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <link rel="icon" type="image/png" href="images/favico.png">
    <title>eWaste</title>
    <!-- Font Awesome -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <!-- Material Design Bootstrap -->
    <link href="css/mdb.min.css" rel="stylesheet">
    <!-- Your custom styles (optional) -->
    <link href="css/style.css" rel="stylesheet">
    <style>

      html{
        margin-top: 100px;
      }
    </style>
</head>

<body>


  <nav class="navbar navbar-expand-lg navbar-light grey lighten-5 fixed-top">
      <div class="container">
        <a class="navbar-brand" href="../index.php">
          <img src="../images/logo.png" height="30" class="d-inline-block align-top" alt="">
        </a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
          <div class="collapse navbar-collapse justify-content-end" id="navbarResponsive">
          <ul class="navbar-nav">
          <li class="nav-item">
            <a class="nav-link" id="navi-current" href="index.php">Admin</a>
          </li>
              </ul>
          </div>
      </div>
  </nav>
  <!-- Navbar -->

  <!--Main-->
  <main class="mb-4 pb-5">
      <div class="container">
        <div class="row">
        <div class="col-xl-4 col-lg-4 col-md-3"></div>
        <div class="col-xl-4 col-lg-4 col-md-6">
        <form class="text-center border border-light p-5" method="post" name="">
            <p class="h4 mb-4">Sign in</p>
            <!-- Email -->
            <input type="text" id="materialContactFormUsername" class="form-control" placeholder="User" name="formuser">
            <!-- Password -->
            <input type="password" id="defaultLoginFormPassword" class="form-control mb-4" placeholder="Password" name="formpass">
            <!-- Login button -->
            <button class="btn btn-info btn-block my-4" type="submit" name="submit">Sign in</button>
        </form>
      </div>
      <div class="col-xl-4 col-lg-4 col-md-3"></div>
      </div>
    </div>
  </main>
  <!--/.Main-->
  <?php
  if (isset($_POST['submit']))
    {
          include 'conn.php';
          session_start();
          $user = $_POST['formuser'];
          $pass = $_POST['formpass'];
          $query = mysqli_query($conn, "SELECT user FROM login WHERE user='$user' and pass='$pass'");
                     if (!$query) {
        die('Invalid query: ' . mysqli_error());
            }
                    if (mysqli_num_rows($query) != 0){
              $_SESSION['login_user']=$username;
                        header("Location: admin.php");
                     }
                     else{
               echo "<script type='text/javascript'>alert('User Name Or Password Invalid!')</script>";
             }
  mysqli_close($conn);
  }
  ?>

  <!--Footer-->
  <?php include 'footer.php';?>
  <!--/.Footer-->

    <!-- SCRIPTS -->
    <!-- JQuery -->
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <!-- Bootstrap tooltips -->
    <script type="text/javascript" src="js/popper.min.js"></script>
    <!-- Bootstrap core JavaScript -->
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
    <!-- MDB core JavaScript -->
    <script type="text/javascript" src="js/mdb.min.js"></script>
      <!-- Initializations -->
  <script type="text/javascript">
    // Animations initialization
    new WOW().init();
  </script>
</body>

管理员.php

<?php
if (isset($_SESSION['login_user'])){
  session_start();
  echo "ok";
 ?>

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
    <meta http-equiv="x-ua-compatible" content="ie=edge">
    <link rel="icon" type="image/png" href="images/favico.png">
    <title>eWaste</title>
    <!-- Font Awesome -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
    <!-- Bootstrap core CSS -->
    <link href="css/bootstrap.min.css" rel="stylesheet">
    <!-- Material Design Bootstrap -->
    <link href="css/mdb.min.css" rel="stylesheet">
    <!-- Your custom styles (optional) -->
    <link href="css/style.css" rel="stylesheet">
    <style>

      html{
        margin-top: 100px;
      }
    </style>
</head>

<body>


  <nav class="navbar navbar-expand-lg navbar-light grey lighten-5 fixed-top">
      <div class="container">
        <a class="navbar-brand" href="../index.php">
          <img src="../images/logo.png" height="30" class="d-inline-block align-top" alt="">
        </a>
        <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarResponsive" aria-controls="navbarResponsive" aria-expanded="false" aria-label="Toggle navigation">
          <span class="navbar-toggler-icon"></span>
        </button>
          <div class="collapse navbar-collapse justify-content-end" id="navbarResponsive">
          <ul class="navbar-nav">
                <li class="nav-item">
                <a class="nav-link" id="navi-current" href="index.php">Admin</a>
                </li>
              </ul>
          </div>
      </div>
  </nav>
  <!-- Navbar -->

  <!--Main-->
  <main class="mb-4 pb-5">
      <div class="container">
        <div class="row">
        <div class="col-xl-4 col-lg-4 col-md-3"></div>
        <div class="col-xl-4 col-lg-4 col-md-6">

        </div>
        <div class="col-xl-4 col-lg-4 col-md-3"></div>
        </div>
    </div>
  </main>
  <!--/.Main-->



  <!--Footer-->
  <?php include 'footer.php';?>
  <!--/.Footer-->

    <!-- SCRIPTS -->
    <!-- JQuery -->
    <script type="text/javascript" src="js/jquery-3.3.1.min.js"></script>
    <!-- Bootstrap tooltips -->
    <script type="text/javascript" src="js/popper.min.js"></script>
    <!-- Bootstrap core JavaScript -->
    <script type="text/javascript" src="js/bootstrap.min.js"></script>
    <!-- MDB core JavaScript -->
    <script type="text/javascript" src="js/mdb.min.js"></script>
      <!-- Initializations -->
  <script type="text/javascript">
    // Animations initialization
    new WOW().init();
  </script>
</body>

</html>
<?php
}

else{
echo "no";
exit();
}

 ?>

标签: phpmysqlsessionlogin

解决方案


请尝试放置此代码

<?php
  if (isset($_POST['submit']))
    {
          include 'conn.php';
          session_start();
          $user = $_POST['formuser'];
          $pass = $_POST['formpass'];
          $query = mysqli_query($conn, "SELECT user FROM login WHERE user='$user' and pass='$pass'");
                     if (!$query) {
        die('Invalid query: ' . mysqli_error());
            }
                    if (mysqli_num_rows($query) != 0){
              $_SESSION['login_user']=$username;
                        header("Location: admin.php");
                     }
                     else{
               echo "<script type='text/javascript'>alert('User Name Or Password Invalid!')</script>";
             }
  mysqli_close($conn);
  }
  ?>

在页面的开头。如果您在浏览器上打印某些内容,则无法将值分配给会话。它会给你警告。


推荐阅读