我有一个登录页面,主页和导航页面,我都包含在这两个页面中。如果会话变量admin是1,导航会显示一个管理选项卡。出于某种原因,当我将session_start放在我的主页上时,即使有人没有登录,它也会显示admin选项卡。登录页面工作正常。如果您尚未登录,则不会显示管理员标签,但是当您登录时,它会显示。如果我将session_start放在登录页面的顶部而不是if语句中,则它与我的主页具有相同的问题。我将session_start放在主页的错误位置吗?我无法弄清楚它为什么会这样做。如果有人有一些意见,那将会有很大的帮助。
这是我登录页面的一部分:
<?php
if ($_POST['password'] == $row['password']) { // set session variables and display
session_start();
$_SESSION["fname"] = $row['fname'];
$_SESSION["lname"] = $row['lname'];
$_SESSION["email"] = $row['email'];
$_SESSION["password"] = $row['password'];
$_SESSION["admin"] = $row['admin'];
} else {
$error= "Password is incorrect";
}// end the if that checks for 1 success
} else {
$error= "Email not found";
}
} //end of overall if
?>
这是我的导航页面:
<ul>
<li><a href="index.php">Home</a></li>
<li class="dropdown">
<a href="#" class="dropbtn">Products</a>
<div class="dropdown-content">
<a href="playstation.php">Playstation 4</a>
<a href="xbox.php">Xbox One</a>
<a href="switch.php">Nintendo Switch</a>
<a href="disc.html">Disc Cleaning</a>
</div>
</li>
<li class="dropdown">
<a href="#" class="dropbtn">Members</a>
<div class="dropdown-content">
<a href="addCustomer.php">Create Account</a>
<a href="editCustomer.php">Edit Account</a>
<a href="login.php">Login</a>
</div>
</li>
<li><a href="aboutUs.html">About Us</a></li>
<li class="dropdown">
<a href="#" class="dropbtn">Contact Us</a>
<div class="dropdown-content">
<a href="contact.html">Contact</a>
<a href="feedback.html">Give Feedback</a>
<a href="feedback.txt">Read Feedback</a>
</div>
<?php
if($_SESSION["admin"] == 1) {
echo "<li class='dropdown'>";
echo "<a href='#' class='dropbtn'>Manage</a>";
echo "<div class='dropdown-content'>";
echo "<a href='addProduct.php'>Add Product</a>";
echo "<a href='editProduct.php'>Edit Product</a>";
echo "</div>";
echo "</li>";
}
?>
</li>
</ul>
这是我主页的一部分:
<?php session_start(): ?>
<body onload="startRotation()">
<div id="wrapper">
<header>
</header>
<nav>
<?php include "nav.php"; ?>
</nav>
</div>
</body>
答案 0 :(得分:-2)
1.keep session_start()
是您代码中的第一件事。
2.它应该在您传递会话数据的每个页面中。
3。session_start:
应在您的主页上session_start();
。