我正在尝试根据用户是否已登录来更改我的导航栏。最终还会检查用户是否为管理员,并根据这些条件具有不同的列表项。
问题是因为我的条件是PHP,它似乎不尊重if语句,当页面加载时,两个ul都显示出来。
我在页面顶部开始会话,因此应该存储“loggedin”的值。
<header>
<div class="container">
<div class="Logo">
<img src="./images/LogoSmall.png" width="60px" height="60px" alt="Logo">
<h2> Quality Speakers Global </h2>
</div>
<div>
<nav>
<?php
if($_SESSION["loggedin"] == "yes"){
?>
<ul>
<li class="current"><a href="Index.html">Home</a></li>
<li><a href="Register.html">Login/Register</a></li>
<li><a href="Slideshow.html">Products</a></li>
<li><a href="Report.html">Report</a></li>
<li><a href="userpage.php">My Account</a></li>
</ul>
<?php } else{?>
<ul>
<li class="current"><a href="Index.html">Home</a></li>
<li><a href="Register.html">Login/Register</a></li>
<li><a href="Slideshow.html">Products</a></li>
<li><a href="Report.html">Report</a></li>
</ul>
<?php
}
?>
</nav>
</div>
</header>
我想要的只是根据条件显示ul
这是我的php登录代码:
<?php
session_start();
$con = mysqli_connect('localhost','root','pass1','accounts');
if(isset($_POST["UsernameLogin"])) {
$Logusername = $_POST['UsernameLogin'];
}
if(isset($_POST["PasswordLogin"])) {
$Logpassword = $_POST['PasswordLogin'];
}
$query = " select * from users where username = '$Logusername' && password = '$Logpassword'";
$result = mysqli_query($con, $query);
$row = mysqli_fetch_assoc($result);
$num = mysqli_num_rows($result);
if($num == 1) {
$_SESSION["username"] = $Logusername;
$_SESSION["level"] = $row["usertype"];
$_SESSION["loggedin"] = 'yes';
if($_SESSION["level"] == "admin") {
header('location:AccountsPage.php');
} else {
header('location:userpage.php');
}
} else {
header("Location: Index.html");
}
?>
您的index.html
页面未被解析为php。将扩展名更改为.php
或更改配置以解析html文件。