假设我在登录页面上有这样一段代码:
<form action="login_action.php" method="post">
<div id="account">
<div class="form-label">Username:</div>
<div class="form-input"><input name="username" type="text" /></div>
<div class="form-label">Password:</div>
<div class="form-input"><input name="password" type="password" /></div>
<div class="form-submit"><input type="submit" value="Submit" /></div>
</div>
</form>
login_action 文件使用给定的凭据查询数据库,如果它们正确则执行 $_SESSION['username'] = $username;
这很好用。但是,如果用户提供了不正确的凭据,理想情况下页面不会重定向,而是会在页面上用户名之前的行中显示一条错误消息。这是我对如何解决感到困惑的部分。
我是否必须改为使用 JQuery 捕获提交按钮按下并使用 AJAX 将用户凭据发布到 php 文件?这将摆脱登录页面上的表单。我想我可以返回一个字符串来指定凭证是否有效,如果无效,它会向帐户 div 附加一条消息,指出凭证不正确。
这会是解决此类问题的标准方法吗?自从最近发现 AJAX 以来,我几乎将它用于所有事情,我不确定在这种情况下它是否是理想的解决方案。覆盖提交按钮的默认行为并删除表单对我来说似乎有点老套,但我不确定。这就是 SO 解决这个问题的方式吗?
最佳答案
我通常做的是,如果密码不正确,则使用条件语句并重定向回表单。假设您的表单页面是 form.php,重定向可以是 form.php?status=password。 然后您可以在表单中显示错误消息
if ($_GET['status'] == 'password')
echo "Incorrect Password";
关于php - 如果他或她的密码不正确,如何重定向并通知用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5428598/