首页 > 解决方案 > 使用 PHP 在单个实例中选择所有表单字段

问题描述

我开始学习 PHP 并拥有下面的代码,其中包括从 db.php 文件到数据库的连接,然后运行一个查询,该查询使用添加到 MYSQL 数据库的 HTML 表单数据。

在下面的代码中有一个 if 语句,表示该$firstname字段必须有内容。如果我有一个较大的表单并希望确保填写每个表单字段,是否有一个 PHP 函数可以选择具有“名称”属性(或类似属性)的所有表单字段?我很感激我可以为每个字段写出 x 次 if 语句,但我认为必须有一个内置的 PHP 函数来解决这个问题?但我在 PHP 文档中看不到任何内容?

任何帮助都会很棒。

<?php include "db.php"; ?>

<?php 

if (isset($_POST['submit'])) {

    $firstname = $_POST['first-name'];
    $email = $_POST['email'];

    if ($firstname == "" || empty($firstname)) {

        echo "This field should not be empty";

    } else {

        $query = "INSERT INTO user(firstname, email) VALUE('{$firstname}', '{$email}')";

        $add_name_query = mysqli_query($connection, $query);

        if (!$add_name_query) {

            die('QUERY FAILED' . mysqli_error($connection));

        }

    }

}


?>

标签: phpmysql

解决方案


您可以构建自己的函数以使其更加“干燥”。

    <?php
    
      $firstname = $_POST['first-name'];
      $email = $_POST['email'];
      $anotherField = "Something";
      $andOneMoreField = "Nothing";
    
      function checkInputField($inputField) {
        if($inputField == "" || empty($inputField)) {
          echo 'This field should not be empty';
          return false;
        } else {
          return true;
        }
      };
    
      if(
        checkInputField($firstname) &&
        checkInputField($email) &&
        checkInputField($anotherField) &&
        checkInputField($andOneMoreField)
        // and so on...
      ) {
        echo "Open doors for SQL-Injection";
        // db-handling
      }
    
    ?>

但这只是作为进一步学习的深思熟虑。这既不是好的代码,也不是实现的建议。


推荐阅读