Динамически изменять HTML после неудачного входа в систему - PullRequest
0 голосов
/ 05 января 2019

Я создаю форму входа на HTML-странице login.html. Теперь после отправки формы данные отправляются на серверный скрипт php с именем login.php. Моя проблема в том, что если по какой-то ошибке сказать, если имя пользователя уже присутствует в таблице базы данных, я хочу, чтобы пользователь оставался на той же странице с красным предупреждением. Или если я хочу добавить популярные два пароля не совпадают с сообщением об ошибке. Как я могу этого добиться. Поскольку данные хранятся в базе данных mysql, я не могу получить к ним доступ, используя какой-либо сценарий на стороне клиента. Но в моем подходе скрипт php перемещает пользователя на другую страницу. И нет никакого способа динамически сделать некоторые сообщения об ошибках видимыми. Я пытался сделать отдельные HTML-страницы для этой цели, но я думаю, что это не очень хорошее решение. Может ли кто-нибудь предоставить мне пример кода для этой цели? Заранее спасибо.

1 Ответ

0 голосов
/ 05 января 2019

Вы можете либо изменить сообщения с помощью оператора switch в login.php (login.php будет отображать сообщение об ошибке), либо вы можете отправить пользователя обратно в login.html с кодом ошибки, добавленным к URL, который можно получить ( это то, что я бы сделал).

Использование Switch в login.php

Вы должны ввести свой предопределенный код ошибки в функцию ошибки, для этого есть несколько способов.

function display_error_message($e) {
    switch ($e) {
        case "error_1":
            echo "Error message 1";
            break;
        case "error_2":
            echo "Error message 2";
            break;
        //Will execute the default if the error code does not match
        default:
            echo "Error message 2";
    }
}

Призвание:

display_error_message("error_1");

Ошибка добавления к URL-адресу login.html (рекомендуется)

Здесь мы снова используем функцию. Он будет перенаправлять пользователя обратно на login.html с ошибкой, это можно использовать и при успешном входе в систему с добавлением /?status=success.

Обратите внимание, что вы не можете использовать функцию header () , если какой-либо контент отображается в login.php до выполнения этой функции.

function error_redirect($e) {
    header("Location: www.example.com/login.html?error=$e");
    exit();
}

Призвание:

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