【问题标题】:Using JavaScript to approve password length in an HTML POST form使用 JavaScript 批准 HTML POST 表单中的密码长度
【发布时间】:2020-04-06 13:27:19
【问题描述】:

我正在制作一个具有简单登录/注销和注册功能的超级基本网站。在 register.php 页面上,用户选择的用户名和密码通过 POST 从注册表中检索并存储在 mySQL 数据库中。我加了JS,保证密码至少8个字符,至少包含一个数字,至少包含一个大写字母。

问题是,当用户单击提交按钮时,JS 和 PHP POST 命令都会执行。如果我的 JS 说用户的密码不符合最低要求,我如何先运行 JS 并停止我的脚本处理和 POST 表单?

编辑:这是一个班级项目,我们还没有学习 Ajax。有人可以解释以下过程:1)验证密码,2)返回密码是否有效,3)如果密码无效则显示(回显?)一条消息,以及 4)如果密码有效,则继续表单数据 POST有效的?我知道 JavaScript 是客户端而 PHP 是服务器端,所以我真的不明白它们应该如何在这里交互。

代码如下。正如一些评论者所指出的,我正在使用带有表单的帖子。

  <form method="post" action="database.php"><fieldset><center>
      First Name  <input type='text' name='firstname' required><br><br>
      Last Name  <input type='text' name='lastname' required><br><br>
.
.
.
<input type='submit' value='Make My Account!'> <!-- Submit button -->
</center></fieldset></form>

这是我用来检查密码长度的 JS。我不知道如何在表单之外执行 POST 命令。另外,在 if/else 块中,我应该调用 PHP 函数吗?

var myInput = document.getElementById("password");
if(myInput.length()>8) {
  // post the form successfully
} else {
  // echo an error message
}

【问题讨论】:

  • 也显示代码。
  • 请发布您的代码,只有我们可以帮助您。
  • 您使用的是submit 输入吗?如果是这样,请将其更改为 button,然后在其中进行函数调用 (onclick="validate()") 并返回 if true,发布表单 false,显示错误。
  • 在原帖中添加了代码。

标签: javascript php mysql web


【解决方案1】:

没有看到您的代码,很难知道发生了什么,但我怀疑您可能将表单方法设置为“发布”,这会在验证运行之前将您的数据发送到服务器。一个选项是在blur 事件上验证密码。 此外,一旦所有内容都经过验证,最好使用 fetch api 或 ajax 将数据发布到服务器。

https://developer.mozilla.org/en-US/docs/Web/HTML/Element/form

https://developer.mozilla.org/en-US/docs/Web/API/Window/blur_event

https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API

https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest

【讨论】:

  • Also it would probably be best to use the fetch api or ajax to post your data to the server once everything has been validated. 我正要这么说。
猜你喜欢
  • 2016-04-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-11-27
相关资源
最近更新 更多