php - 如果他或她的密码不正确,如何重定向并通知用户?

标签 php javascript jquery html ajax

假设我在登录页面上有这样一段代码:

<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/

相关文章:

php - 为什么当我在 Ubuntu 中运行一个 .php 脚本时它只是回应脚本本身?

javascript - jQuery 在 Chrome 扩展中未定义?

jquery - 需要使用 JQtouch 帮助的 iPad 应用程序

javascript - 使用 Prototype 或 jQuery 实现 .lastChild 的最佳方式

php - 在 Laravel 4 中获取最后插入的 ID

php - 页面仅在登录后才可访问

javascript - 单元测试时,无法在 Angular RC 5 中解析路由器 : (?、?、?、?、?、?、?) 的所有参数

javascript - 如何在 mustache 中呈现动态生成的 key

php - 使用PHP制作youtube播放列表。我出错了。我不确定出了什么问题

javascript - 在 wordpress 上使用自定义 CSS 制作动画