我希望在登录时显示不同的导航显示。
例如,无需登录: 所有页面的导航显示:主页/关于/游戏/登录和注册
登录后: 用于所有页面的导航显示:主页/关于/游戏/注销
这是我的 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'];
}
?>
答案 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");
}