Исчезает div, который отображается при возникновении исключения в php

#php #html #jquery

#php #HTML #jquery

Вопрос:

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

HTML:

     <div id="error-message-box">
<h1 class ="error-headline">Error!</h1>
<p class ="error-text"><?php $errorMessage ?></p>
 

JS:

         $('form').submit(function () {
    var check = loginValidation($(this));
    if(check==false) {
        $("#error-message-box").fadeIn()
        $(".error-text").text("Fill in all the fields")
        $("#error-message-box").delay(7000).fadeOut();
    }
    return check;
});
 

Это работает нормально, но я не могу понять, как сделать что-то подобное, когда в php генерируется исключение. В моем php-файле у меня есть это:

     function displayError ($eMessage) {
$errorMessage = $eMessage;
 

}

     if(isset($_POST['log-in-btn'])) {
$username=$_POST['username'];
$password=$_POST['password'];
try {
    $sql=" SELECT * FROM User WHERE username ='".$username."' AND password= '".$password."' ";
$result = mysqli_query($conn, $sql);
if(mysqli_num_rows($result)==1) {
    while ($row = mysqli_fetch_array($result, MYSQLI_NUM)) {
    $_SESSION['username'] = $row["0"];
    $_SESSION['password'] = $row["1"];
    $_SESSION['name'] = $row["2"];
    $_SESSION['surname'] = $row["3"];
    $_SESSION['email'] =$row["4"];
        }
}
else {
    throw new Exception("Username and password doesn't exsist");
}
}
catch (Exception $e){
    displayError($e->getMessage());
}
 

}

Единственный способ, который я могу придумать на данный момент, — это иметь эхо HTML-кода моего окна с сообщением об ошибке в функции displayError, но тогда я не знаю, как сделать его видимым в течение ограниченного промежутка времени. Или, может быть, каким-то образом добавьте триггер или прослушиватель в jQuery, чтобы проверить, виден ли div, чтобы он срабатывал при повторении HTML-кода, однако я понятия не имею, работает ли это. Какие-либо советы?

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

1. Пожалуйста, используйте password_hash, password_verify и подготовленные инструкции.. ваш способ — огромная дыра в безопасности.

2. Да, я в курсе! Планирую исправить подобные вещи позже — но спасибо за советы!

3. Используете ли вы ajax / xhr для процесса входа в систему или обычную HTML-форму?

4. Я использую обычную html-форму! У него есть метод = post, который запускает последовательность post-login-btn