在PHP中测试登录是否失败


Test if Login Failed in PHP

如果用户登录尝试失败,我想像在Asp.NET (lblResult.Text = "Login Failed") 中那样在登录表单下写一些东西

以下是登录示例:

<body>
        <form  method="post">
            Username: <input type="text" name="username"/><br />
            Password: <input type="password" name="password"/><br/>
            <input type="submit" id="Submit" value="Submit"/>
        </form>
    </body>

如果登录失败,就在表单下面,应该显示"登录失败"之类的消息,但除了用echo或其他东西添加整个表单代码外,我不知道还有其他方法。

谢谢。

在需要消息的地方添加类似的内容:

<?php if ($loginFailed): ?>
  <div class="errorMessage">Login Failed</div>
<?php endif; ?>

注意,我使用的是可替换的控制结构语法,在编写意大利面条时,它比花括号稍微好一些。

是否将其发布到另一个文件?你可以简单地分配一个响应,并在表单后面回显:

//do logic php logic here, if correct redirect if not assign $response here

<body>
    <form  method="post">
        Username: <input type="text" name="username"/><br />
        Password: <input type="password" name="password"/><br/>
        <input type="submit" id="Submit" value="Submit"/>
    </form>
    <?php echo $response; ?>
</body>

如果您不使用ajax,只是简单地发布到同一页面,您可以执行以下操作:

<form>...</form>
<?php
  if (isset($_POST['username']) && !isset($_SESSION['username'])
  {
    // non-successful login
  }
?>

我假设您正在会话变量中设置成功登录。

当表单提交失败时,你不能把"登录失败"放在一个变量中,然后在代码中执行以下操作吗?

<body>
    <form  method="post">
        Username: <input type="text" name="username"/><br />
        Password: <input type="password" name="password"/><br/>
        <input type="submit" id="Submit" value="Submit"/>
    </form>
    <? if(isset($failed) { echo "<div>" . $failed . "</div>"; } ?>
</body>