表单是空的,所以甚至在我提交之前它就给了我一个验证错误


Form is empty, so it gives me a validation error even before I submit

我对php真的很陌生,所以请听我说。我用一个表单制作了一个简单的页面,用于验证您发送的数据是否可以发送,但它给了我一个验证错误,甚至在我输入任何内容之前就犯了。这是代码:

 <html>
 <body>
         <form action="first.php" method="post">
            Username:<input type="text" name="username"><br />
            Password:<input type="password" name="password"><br />
            <input type="submit" name="submit"><br />
         </form>
 <?php
     $errors = array();
     $username = $_POST['username'];
     $password = $_POST['password'];
     $errors = array();
     if(!isset($username) || empty($username)){
        $errors = "Empty username<br />";
      }
     if ($username > 10){
        $errors['username'] = "Username out of range<br />";
     }
     if (!empty($errors)){
         echo "Error<br />";
         print_r ($errors);
     }
 ?>
</body>
</html>

PHP 代码包装成if()条件:

if( isset($_POST['submit']) )
{
    $errors = array();
    (...)
}

如果没有这个,即使没有提交表单,你的代码也会被执行。

试试这个:

 <html>
 <body>
        <form action="first.php" method="post">
             Username:<input type="text" name="username"><br />
             Password:<input type="password" name="password"><br />
             <input type="submit" name="submit"><br />
        </form>
        <?php
           if(isset($_POST['submit']))
           {
              $errors = array();
              $username = $_POST['username'];
              $password = $_POST['password'];
              $errors = array();
           if(!isset($username) || empty($username)){
              $errors = "Empty username<br />";
            }
           if ($username > 10){
              $errors['username'] = "Username out of range<br />";
           }
           if (!empty($errors)){
                echo "Error<br />";
                print_r ($errors);
            }
          }
        ?>
</body>
</html>