我的代码如下.它工作正常,但我希望在发现错误后不再显示表单.怎么能做到


My code is below. It's working fine, but i want it not to display form again after the errors were found. How can it be done?

我的代码在下面。它工作正常,但我希望在发现错误后不再显示表单。怎么能做到呢?
这是一个单页,用户名验证程序,我只想知道为什么表单之后再次显示,以及我将如何解决它。

   <?php require'function.php'; ?>
<?php
    $errors = array();
    $username = "";
    $password = "";
    $msg = "Please Log in.";
  ?>
<?php if (isset($_POST['submit']))
{
    $username = $_POST['username'];
    $password = $_POST['password'];
    if($username != "rish" && $password != "password"){
        $msg = "Try again.";
      $errors['cred'] = "Wrong Credentials.";
    }
 }
?>
<!DOCTYPE html>
<html>
<head>
    <title>Single Page Form</title>
</head>
<body>
<?php
     echo display_error($errors);
     ?>
<?php echo $msg ?>
<form action="singleform.php" method="post">
    Username:  <input type="text" name="username" value="<?php echo htmlspecialchars($username); ?>"><br>
    Password:  <input type="password" name="password" value="<?php echo "" ?>"><br>
    <input type="submit" name="submit" value="Submit">
</form>
</body>
</html>

您可以验证 $_POST 数据是否为空。如果不为空,则用户只需加载页面。

可以像下面的代码一样做:

<?php if(empty($_POST)):?>
    <form action="singleform.php" method="post">
            Username:  <input type="text" name="username" value="<?php echo htmlspecialchars($username); ?>"><br>
            Password:  <input type="password" name="password" value="<?php echo "" ?>"><br>
            <input type="submit" name="submit" value="Submit">
        </form>
    <?php endif;?>

用户是set,,如果错误初始化,则不会显示

<? if (!isset($errors['cred'])) { ?>
<form action="singleform.php" method="post">
Username:  <input type="text" name="username" value="<?php echo htmlspecialchars($username); ?>">  <br>
Password:  <input type="password" name="password" value="<?php echo "" ?>"><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php } ?>