Я хотел бы показать или скрыть данный набор ссылок на панели навигации веб-приложения в зависимости от состояния входа пользователя.
Ниже приведен фрагмент моего кода;
<nav>
<a id="mainpage">Main Page</a>
<?php if ($_SESSION['logged_in'] === false) { ?>
<a href="login2.php">Login</a>
<a href="register.php">Register</a>
<?php } else { ?>
<a href="post.php">Posting</a>
<a href="#">Members posts</a>
<a href="logout.php" class="outbutton">Logout</a>
<?php } ?>
</nav>
Здесь мой скрипт страницы входа в систему;
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$username = ($_POST['username']);
$password = ($_POST['password']);
$q = "SELECT * FROM users WHERE username='$username' AND pass='$password'";
$x = $conn->query($q);
if ($x->num_rows > 0) {
while ($row = $x->fetch_assoc()) {
$_SESSION['logged_in'] = true;
header("location: welcome.php");
}
} else {
die("Username or Password is incorrect");
}
Мой скрипт входа в систему работает должным образом, но на странице index.php
появляется ошибка ниже, когда пользователь не вошел в систему:
Примечание: неопределенный индекс: logged_in
С другой стороны, ссылки отображаются на панели навигации при успешном входе пользователя в систему.
Я использую session_start()
в начале моего сценария PHP перед любыми другими кодами.