Переменная PHP не отображается в файле HTML - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь напечатать сообщение об ошибке в форме входа в систему, если имя пользователя или пароль неверны. Все отлично работает (аутентификация пользователя, соединение с dbms ...). Если я распечатываю сообщение в моем логине. php файл, он отображается правильно, но когда я хочу напечатать его в моем html файле, это не так.

HTML FILE: логин . html. php

<div class="login-form">
        <?php include __DIR__ . '/../backend/login.php'; ?>

        <form action="../backend/login.php" method="POST">
            <label for="username"><b>Username</b></label>
            <input type="text" placeholder="Enter your username" name="username" required>

            <label for="password"><b>Password</b></label>
            <input type="password" id="passwordInput" placeholder="Enter your password" name="password" required>

            <input type="checkbox" onclick="rememberMeFunction()"> Show Password
            <p> <?php echo $error_message ?></p>
            <input type="submit" name="submit">


        </form>
    </div>

PHP ФАЙЛ: логин. php

<?php 

 include __DIR__ . '/../backend/functions.php';

 if(isset($_POST['username']) && isset($_POST['password'])){
$validation_result = validate_login($_POST['username'], $_POST['password']); 

$error_message = " ";

if(!$validation_result){
    $error_message = "Username or password is invalid";
    header("location: ../frontend/login.html.php");
} else{
    header("location: ../frontend/login_success.html.php");
}
}

Ответы [ 2 ]

0 голосов
/ 06 марта 2020

Я обновил свой тег p с помощью этого кода:

<?php 
      session_start();

      if(isset($_SESSION['error_message'])){
          $error_message = $_SESSION['error_message'];

            if(!empty($error_message)){
               echo $error_message;
               session_destroy();
            } 
      } 
?>

Это работает! Если введенные данные неверны, появится сообщение об ошибке. Если я успешно войду в систему, а затем вернусь, сообщение об ошибке исчезнет. То же самое происходит, когда я go захожу на домашнюю страницу и возвращаюсь на страницу входа

0 голосов
/ 06 марта 2020

Просто удалите эту строку из своего кода

if(!$validation_result){
    $error_message = "Username or password is invalid";
    // -> header("location: ../frontend/login.html.php"); <- this line
} else{
    header("location: ../frontend/login_success.html.php");
}

Затем добавьте эту строку в свой передний код (логин. html. php)

global $error_message;
if(!empty($error_message))
    echo $error_message;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...