Как я могу правильно настроить свою сессию после успешного входа на мой веб-сайт

#php #session

#php #сессия

Вопрос:

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

Я перепробовал все, но это не работает: (

Это мой header.php

 <?php
session_start();
?>
<?php
    if (isset($_SESSION['userId'])) {
        echo '<form action="Connectingdatabase/includes/logout.mrk.php" method="post">
                <button type="Submit" name="logout-submit">Log out</button>
            </form>';
        }
    else {
    echo '<form action="../includes/login.mrk.php" method="post">
            <input type="text" name="mailuid" placeholder="Username/E-mail">
            <input type="password" name="pwd" placeholder="Password">
            <button type="Submit" name="login-submit">Login</button>
          </form>';
  

Это мой index.php

 <?php
 require "header.php";
?>
<?php
if (isset($_SESSION['userId'])) {
    echo '<p>You are logged in!</p>';
}
else {
    echo '<p>You are logged Out!</p>';
}
?>
  

Это мой login.php

 if ($row = mysqli_fetch_assoc($result)) {
            $pwdCheck = password_verify($password, $row['pwdUsers']);
            if ($pwdCheck == false) {
            header("Location: ../systemlogintut/index1.php?error=wrongpwd");
            exit();     
            }
            else if ($pwdCheck == true) {
                session_start();
                $_SERVER['userId'] = $row['idUsers'];
                $_SERVER['userUid'] = $row['uidUsers'];
                header("Location: ../systemlogintut/index1.php?login=success");
            exit();
            }
            else {
            header("Location: ../systemlogintut/index1.php?error=wrongpwd");
            exit();
            }
        }
        else {
            header("Location: ../systemlogintut/index1.php?error=nouser");
            exit(); 
  

Мой ожидаемый результат это. Если мой вход в систему прошел успешно, форма входа в систему не будет отображаться, и она должна отправлять мне сообщение о том, что я вошел в систему, и выдает мне только кнопку выхода из системы на моей навигационной панели

Комментарии:

1. О каком файле идет речь в вашем вопросе?

2. 2-й @Phil

3. Я не понимаю вашего комментария. В вашем вопросе есть три фрагмента кода; какой фрагмент принадлежит какому файлу?

4. Ваш логин-код неполон. Вы начинаете сеанс там? Как вы выполняете запрос?

5. @poga похоже, вы нигде не устанавливаете значение $ _SESSION [‘Идентификатор пользователя’]. Измените $ _SERVER [‘Идентификатор пользователя’] на $ _SESSION[‘Идентификатор пользователя’] после session_start()