PHP код для входа / выхода не работает правильно - PHP - PullRequest
0 голосов
/ 16 февраля 2019

Возникли некоторые проблемы с тем, что мой php-код для входа / выхода правильно отображается в моей навигационной панели.Когда пользователь вошел в систему, я бы хотел, чтобы на панели навигации отображался «выход из системы», и наоборот.

В верхней части страницы header.php:

<?php
  session_start();
  require "includes/dbh.inc.php";
?>

Фрагмент панели навигациикод ниже в header.php:

<nav class="navbar navbar-expand-lg">
    <div class="container-fluid">
    <a class="navbar-brand text-left" href="index.php">iStudy University <i class="fas fa-graduation-cap"></i></a>
        <button type="button" class="navbar-dark navbar-toggler" data-toggle="collapse" data-target="#myTogglerNav"
                aria-controls="myTogglerNav" aria-label="Toggle Navigation"><span class="navbar-toggler-icon"></span>
        </button>  <!-- Aria controls are for assistive screen readers -->

        <section class="collapse navbar-collapse" id="myTogglerNav">
        <div class="navbar-nav ml-auto">
            <a class="nav-item nav-link px-3" href="index.php"><i class="fas fa-home"><span class="nav-text">&nbsp; Home</span></i></a>
            <a class="nav-item nav-link px-3" href="about.html"><i class="fas fa-info-circle"><span class="nav-text">&nbsp; About</span></i></a>
            <a class="nav-item nav-link px-3" href="contact.html"><i class="fas fa-envelope"><span class="nav-text">&nbsp; Contact Us</span></i></a>
            <a class="nav-item nav-link px-3" href="signup.php"><i class="fas fa-check-square"><span class="nav-text">&nbsp; Sign Up</span></i></a>
               <?php  
                    if (!isset($_SESSION['id'])) {
                      echo "<a class='nav-item nav-link px-3' action='includes/login.inc.php' href='login.php'><i class='fas fa-sign-in-alt'><span class='nav-text'>&nbsp; Login</span></i></a>";
                    } else {
                      echo "<a class='nav-item nav-link px-3' action='includes/logout.inc.php' href='index.php'><i class='fas fa-sign-out-alt'><span class='nav-text'>&nbsp; Logout</span></i></a>";
                    }
                ?>
        </div>
        </section>
    </div>
</nav>

Тем не менее, когда я захожу в index.php, «logout» выглядит так, как будто пользователь уже вошел в систему, пожалуйста, кто-то может дать мне несколько советов относительногде ошибка.What you see before logging in

** Обратите внимание, я не совсем уверен, смогу ли я выполнить действие в коде, как у меня ... Однако я следовал учебнику YouTube, и этибыли страницы с большим количеством кода, содержащего php и mySQLi. **

action='includes/logout.inc.php
action='includes/login.inc.php

1 Ответ

0 голосов
/ 16 февраля 2019

Не используйте

$_SESSION['id'] 

для проверки входа пользователя.Каждый сеанс получает идентификатор при запуске.Вместо этого установите переменную сеанса, например

$ _ SESSION ['user_id']

или sth.когда пользователь входит в систему и проверяет эту переменную.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...