javascript - 登录失败后动态更改html
问题描述
我正在 HTML 页面 login.html 中构建登录表单。现在,在提交表单后,数据将发送到名为 login.php 的 php 服务器端脚本。我的问题是,如果对于某些错误说用户名是否已经存在于数据库表中,我希望用户留在同一页面上并显示红色警告。或者如果我想添加流行的两个密码不匹配的错误信息。我怎样才能做到这一点。由于数据存储在 mysql 数据库中,因此我无法使用任何客户端脚本访问它。但在我的方法中,php 脚本将用户移动到另一个页面。并且没有办法动态地使某些错误消息可见。为此,我尝试制作单独的 html 页面,但我认为这不是一个很好的解决方案。任何人都可以为此目的提供一个示例代码吗?提前致谢。
解决方案
您可以使用 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(推荐)
这里我们再次使用一个函数。它会将用户重定向回 login.html 并显示错误,这可以用于成功登录以及 append /?status=success
。
请注意,如果在函数执行之前 login.php 上显示了任何内容,则不能使用header()函数。
function error_redirect($e) {
header("Location: www.example.com/login.html?error=$e");
exit();
}
来电:
error_redirect("nouser");
推荐阅读
- java - 如何将 oracle live sql(网站:https://livesql.oracle.com/apex/f?p=590:1000)连接到 java 应用程序
- arrays - 如何比较结构的切片
- c++ - 将 auto 作为参数传递并在 C++ 中返回 auto
- ios - 为什么我的 iOS 应用无法识别 Firebase 深层链接(apple-app-site-association 为空)?
- java - 在 webview 中加载 URL 时面临问题
- python - 在不知道 (x,y) 坐标和“z”之间关系的情况下插入 3D 数据
- function - 如何使用在另一个单元格中声明的函数?
- amazon-web-services - Paws::CognitoIdp::GetUser 返回“无效的访问令牌”
- java - TestNG 报告正在发送以前的报告
- postgresql - 气流致命:用户“postgres”的密码验证失败