首页 > 解决方案 > 登录失败后动态更改html

问题描述

我正在 HTML 页面 login.html 中构建登录表单。现在,在提交表单后,数据将发送到名为 login.php 的 php 服务器端脚本。我的问题是,如果对于某些错误说用户名是否已经存在于数据库表中,我希望用户留在同一页面上并显示红色警告。或者如果我想添加流行的两个密码不匹配的错误信息。我怎样才能做到这一点。由于数据存储在 mysql 数据库中,因此我无法使用任何客户端脚本访问它。但在我的方法中,php 脚本将用户移动到另一个页面。并且没有办法动态地使某些错误消息可见。为此,我尝试制作单独的 html 页面,但我认为这不是一个很好的解决方案。任何人都可以为此目的提供一个示例代码吗?提前致谢。

标签: javascriptphpjquerymysqlajax

解决方案


您可以使用 login.php 中的 switch 语句更改消息(login.php 将显示错误消息),或者您可以将用户发送回 login.html,并将错误代码附加到可以检索的 url(这就是我会做)。

在 login.php 中使用 Switch

您可以将预定义的错误代码输入到错误函数中,有多种方法可以做到这一点。

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");

将错误附加到 login.html 的 URL(推荐)

这里我们再次使用一个函数。它会将用户重定向回 l​​ogin.html 并显示错误,这可以用于成功登录以及 append /?status=success

请注意,如果在函数执行之前 login.php 上显示了任何内容,则不能使用header()函数。

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

来电:

error_redirect("nouser");

推荐阅读