Php 如何使浏览器在登录尝试失败时不提示保存密码?

Php 如何使浏览器在登录尝试失败时不提示保存密码?,php,html,firefox,browser,Php,Html,Firefox,Browser,我正在用PHP编写一个应用程序,它使用表单检索用户名和密码输入。成功登录后,web浏览器将提示保存用户名和密码(使用Firefox、Safari和Chrome进行测试) 但是,如果用户登录失败,浏览器仍会提示保存密码(这显然不是预期的行为)。如何在浏览器中指示登录未成功,并且不应提示保存详细信息 以下是登录页面的HTML: <html> <head><title>Login</title></head> <body>

我正在用PHP编写一个应用程序,它使用表单检索用户名和密码输入。成功登录后,web浏览器将提示保存用户名和密码(使用Firefox、Safari和Chrome进行测试)

但是,如果用户登录失败,浏览器仍会提示保存密码(这显然不是预期的行为)。如何在浏览器中指示登录未成功,并且不应提示保存详细信息

以下是登录页面的HTML:

<html>
  <head><title>Login</title></head>
<body>
  <style text="css">
    fieldset {
      padding: 10px;
      width: 250px;
      text-align: right;
    }
</style>
<form method="POST" action="checkLogin.php">
  <fieldset>
  <label for="user">Username: <input type="text" id="user" name="username" size="15" /></label><br />
  <label for="pass">Password: <input type="password" id="pass" name="password" size="15" /></label><br />
  <p><input type="submit" value="Login" /></p>
</fieldset>    
</form>
</body>
</html>

登录
字段集{
填充:10px;
宽度:250px;
文本对齐:右对齐;
}
用户名:
密码:

php脚本只需检查DB的登录信息以确保其有效,如果凭证不正确,则打印“登录尝试失败”

有人能解释一下这个问题吗?我知道这是一个小问题,但我没有注意到我的浏览器为其他网站的失败登录保存密码


提前谢谢

我很确定问题在于“checklogin.php”与此表单出现的页面不同。您应该将表单发布到表单本身,如果登录表单失败,则应重新绘制该表单


如果您没有重新绘制表单,或者您发布到另一个页面,浏览器很可能会假定登录成功。我猜大多数浏览器都是通过相同的表单仍然存在这一事实来判断失败的。它只有在成功时才会消失。

这可能不是最简单的方法,但我所做的是使用AJAX提交表单,并将我要发送给用户的页面放置在表单的活动属性中。然后,submit按钮将是button类型而不是submit类型,并将在单击它时调用执行AJAX请求的Javascript函数。如果对checklogin.php文件的异步请求返回登录成功,我将使用JavaScript提交表单,它实际上只是将用户发送到下一页,但浏览器将要求保存密码。这种方法的另一个好处是,当提交错误的密码时,页面不必重新加载。

这是正确的。我首先考虑将checkLogin.php脚本移动到login.php脚本中,但是为我的用例找到了一个更简单的方法。我没有打印“登录失败,再试一次”,而是使用以下PHP行从checkLogin脚本重定向回登录页面:header(“location:login.PHP”);非常感谢!这是更有用的(不再点击返回或点击链接返回登录页面)和浏览器不会混淆。非常感谢jamietre!!看来这也行。对于这个项目,我是KISS(保持简单愚蠢),但这似乎也能回答这个问题。谢谢你的意见!