PHP — echo не отображается?

#php

#php

Вопрос:

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

 session_start();

include 'dbh.php';

$uid = $_POST['uid'];
$pwd = $_POST['pwd'];

$sql = "SELECT * FROM users WHERE uid='$uid' AND pwd='$pwd'";

$result = mysqli_query($conn, $sql);

if (!$row = mysqli_fetch_assoc($result)) {
    echo "Your username or password is incorrect";
} else {
    $_SESSION['id'] = $row['id'];
}

header("Location: ../index.php");
  

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

1. Когда браузер получает перенаправление, он не отображает страницу первой.

Ответ №1:

На самом деле это работает, но после этого он перенаправляет вас на домашнюю страницу, используя вашу функцию заголовка. Добавьте header("Location: ../index.php"); в свое условие else, и вы получите желаемый результат.

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

1. Я думаю, он действительно хочет, чтобы он отображал сообщение, а затем перенаправлял в любом случае.

2. Тогда ему нужно использовать что-то вроде settimeout javascript или функции сна php.

3. Это почти работает так, как я хочу. Теперь, когда он повторяет, страница очищается и просто говорит: «ваше имя пользователя или пароль неверны»