PHP 文件中的 $_POST 数组显示空结果



我正在使用使用bootstrap 4创建的简单表单。我正在使用 php 文件进行服务器验证,但它没有从表单接收任何帖子条目。

这是我的表单,它有一个客户端验证,可以通过从输入字段中删除"必需"来测试服务器端验证来暂时禁用。但是,服务器端验证不起作用,因为它使用 $_POST,它不显示或保留任何传入值。

这是我的表格:

<form role="form" action="form_handling.php" method="post" id="elegantForm" class="needs-validation" novalidate>  
<!--  Name Group    -->   
         <div class="form-group">
    <label for="name">Full Name:</label>
    <input type="text" class="form-control" id="fullname" aria-describedby="nameHelp" placeholder="Enter full name" required>
        <div class="invalid-feedback">
          Please enter full name.
        </div>
  </div>
<!--  Email Group     -->    
        <div class="form-group">
             <label for="email">Email address:</label>
             <input type="email" class="form-control" id="emailaddress" aria-describedby="emailHelp" placeholder="Enter email" required>
        <div class="invalid-feedback">
          Please enter valid email address.
        </div>
        </div>
<!--  Telephone Group   -->   
         <div class="form-group">
              <label for="phone">Telephone:</label>
              <input type="tel" class="form-control" id="phoneNumber" aria-describedby="phonelHelp" placeholder="xxx-xxx-xxxx" required> 
        <div class="invalid-feedback">
          Please enter telephone number.
        </div>
         </div>
<!--  Telephone Group   -->   
         <div class="form-group">
              <label for="tel">Message:</label>
              <textarea type="textarea" class="form-control" id="messageBox" aria-describedby="messagelHelp" placeholder="Enter message here" maxlength="6000" rows="6" required></textarea>
             <div class="invalid-feedback">
          Please enter a message.
        </div>
          </div>
<!--      Submit Button   -->
       <button type="submit" class="btn btn-primary">Submit</button>
    </form>
----------------------------------------
And here is the PHP file:
<?php
$errors         = array();      // array to store validation errors
$data           = array();      // array to store incoming "post" data 
if (empty($_POST['name']))
        $errors['name'] = 'Name is required.';
    if (empty($_POST['email']))
        $errors['email'] = 'Email is required.';
    if (empty($_POST['phone']))
        $errors['phone'] = 'Phone is required.';
    if (empty($_POST['message']))
        $errors['message'] = 'Message is required.';
// return a response ===========================================================
    if ( ! empty($errors)) {
        // if there are items in our errors array, return those errors
        $data['success'] = false;
        $data['errors']  = $errors;
    } else {

        // show a message of success and provide a true success variable
        $data['success'] = true;
        $data['message'] = 'Success!';
    }

print_r($_POST);
var_dump($_POST);
?>

对于元素 ID 不是由 POST 方法传递的。您需要设置表单元素的名称

<input type="tel" class="form-control" name="phoneNumber" id="phoneNumber" aria-describedby="phonelHelp" placeholder="xxx-xxx-xxxx" required>

您忘记为输入输入"name"属性。

最新更新