登录时显示不同的导航

时间:2018-10-05 08:48:07

标签: php html mysql

我希望在登录时显示不同的导航显示。

例如,无需登录: 所有页面的导航显示:主页/关于/游戏/登录和注册

登录后: 用于所有页面的导航显示:主页/关于/游戏/注销

这是我的 about.php

导航代码
scipy.sparse.csr.csr_matrix

对于game.php,我设置为在查看该页面之前登录的要求,因此如果用户未登录,则将被定向为登录。

<!-- Navbar -->
        <nav class="navbar navbar-default">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#myNavbar">
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>                        
              </button>
              <a class="navbar-brand"><img style= "height: 50px; width: 120px" src="#"></a>
            </div>
   <?php
        if(isset($_SESSION['username']) == false) {
            $mysqli = new mysqli("localhost", "mp01_user", "venture@1998", "mp01_game");
            $stmt = $mysqli-> prepare("SELECT username FROM users WHERE username= '$username'");
            $stmt->bind_param("s", $username);
            $stmt->execute();
            $stmt->bind_result($username);
            $stmt->fetch();
        ?>
        <?php 
            echo '<div class="collapse navbar-collapse" id="myNavbar">';
            echo '<ul class="nav navbar-nav navbar-right">';
            echo '<li><a href="index.html">HOME</a></li>  ';
            echo '<li><a href="about.html">ABOUT</a></li>';
            echo '<li><a href="game.html">GAME</a></li>';
            echo '<li><a href="contact.html">CONTACT</a></li>';
            echo '<li><a href="login.html">LOG IN/REGISTER</a></li>';
            $stmt->close();
            $mysqli->close();
        ?>
        <?php } else { 
            $mysqli = new mysqli("localhost", "mp01_user", "venture@1998", "mp01_game");
            $stmt = $mysqli-> prepare("SELECT username FROM users WHERE username= '$username'");
            $stmt->bind_param("s", $username);
            $stmt->execute();
            $stmt->bind_result($username);
            $stmt->fetch();


            echo '<div class="collapse navbar-collapse" id="myNavbar">';
            echo '<ul class="nav navbar-nav navbar-right">';
            echo '<li><a href="index.html">HOME</a></li>';
            echo '<li><a href="about.html">ABOUT</a></li>';
            echo '<li><a href="game.html">GAME</a></li>';
            echo '<li><a href="contact.html">CONTACT</a></li>';
            echo '<li><a href="logout.php">LOG OUT, <?php ?></a></li>';
         ?>        
              </ul>
            </div>
          </div>
        </nav>

这是我的game.php导航栏代码

<?php
    session_start();
    ob_start();
    If (!isset($_SESSION["username"])){
        $_SESSION['username'] = $username;
            header("Location:login.html");
        }
    else {
      $username = $_SESSION['username'];
    }
?>

1 个答案:

答案 0 :(得分:2)

您可以使用与game.php中相同的支票。 例如:

<div class="collapse navbar-collapse" id="myNavbar">
  <ul class="nav navbar-nav navbar-right">
 <?php if (isset($_SESSION["username"])){ ?>
   <li><a href="logged in.html">Item that only logged in users can see</a></li>
 <?php } ?>
 <li><a href="everyone.html">Item that everyone can see</a></li>
  </ul>
</div>

注意:当然,如果用户已登录,您仍然需要在每个安全页面上进行检查

评论后编辑:

<div class="collapse navbar-collapse" id="myNavbar">
  <ul class="nav navbar-nav navbar-right">
    <?php if (isset($_SESSION["username"])){ ?>
      <li><a href="logout.html">logout</a></li>
    <?php }else{ ?>
      <li><a href="login.html">login / register</a></li>
    <?php } ?>
   </ul>
</div>

我们检查用户是否已登录,如果用户已登录,则显示退出页面,否则,我们显示登录页面。

检查用户是否已经在登录页面上登录可能是一件好事。以下检查将执行此操作,如果已经登录到页面,则将用户重定向:

if (isset($_SESSION["username"])){
      header("Location: PageForOnlyMembers.html");
}