提交联系表时只得到 'message' 部分

Only getting 'message' section when submitting contact form

使用简单的联系表。我把它托管在我的服务器上。当我按 'send' 按钮填写所有信息后,我只会收到我在 'message' 部分中输入的内容到我的电子邮件。我该怎么做才能获得其余字段(姓名、电子邮件、phone)。似乎无法确定问题所在。

/*----------------- START OF FORM -----------------     */    
    
    @import url(http://fonts.googleapis.com/css?family=Open+Sans:400italic,400,300,600);

* {
 margin:0;
 padding:0;
 box-sizing:border-box;
 -webkit-box-sizing:border-box;
 -moz-box-sizing:border-box;
 -webkit-font-smoothing:antialiased;
 -moz-font-smoothing:antialiased;
 -o-font-smoothing:antialiased;
 font-smoothing:antialiased;
 text-rendering:optimizeLegibility;
}

body {
 font-family:"Open Sans", Helvetica, Arial, sans-serif;
 font-weight:300;
 font-size: 12px;
 line-height:30px;
 color:#777;
/* background:#0CF;*/
}

.error {
    color: red;
}

.success {
    color: #ff9966;
    text-align: center;
    font-weight: bold;
    font-size: 14px;
}

.container5 {
 max-width:500px;
 width:100%;
 margin:0 auto;
 position:relative;
    float: left;
}

#contact input[type="text"], #contact input[type="email"], #contact input[type="tel"], #contact input[type="url"], #contact textarea, #contact button[type="submit"] { font:400 12px/16px "Open Sans", Helvetica, Arial, sans-serif; }

#contact {
 background:#F9F9F9;
 padding:25px;
 margin: 0;
}

#contact h3 {
 color: #F96;
 display: block;
 font-size: 30px;
 font-weight: 400;
}

#contact h4 {
 margin:5px 0 15px;
 display:block;
 font-size:13px;
}

fieldset {
 border: medium none !important;
 margin: 0 0 10px;
 min-width: 100%;
 padding: 0;
 width: 100%;
}

#contact input[type="text"], #contact input[type="email"], #contact input[type="tel"], #contact input[type="url"], #contact textarea {
 width:100%;
 border:1px solid #CCC;
 background:#FFF;
 margin:0 0 5px;
 padding:10px;
}

#contact input[type="text"]:hover, #contact input[type="email"]:hover, #contact input[type="tel"]:hover, #contact input[type="url"]:hover, #contact textarea:hover {
 -webkit-transition:border-color 0.3s ease-in-out;
 -moz-transition:border-color 0.3s ease-in-out;
 transition:border-color 0.3s ease-in-out;
 border:1px solid #AAA;
}

#contact textarea {
 height:100px;
 max-width:100%;
  resize:none;
}

#contact button[type="submit"] {
 cursor:pointer;
 width:100%;
 border:none;
 background:#0CF;
 color:#FFF;
 margin:0 0 5px;
 padding:10px;
 font-size:15px;
}

#contact button[type="submit"]:hover {
 background:#09C;
 -webkit-transition:background 0.3s ease-in-out;
 -moz-transition:background 0.3s ease-in-out;
 transition:background-color 0.3s ease-in-out;
}

#contact button[type="submit"]:active { box-shadow:inset 0 1px 3px rgba(0, 0, 0, 0.5); }

#contact input:focus, #contact textarea:focus {
 outline:0;
 border:1px solid #999;
}
::-webkit-input-placeholder {
 color:#888;
}
:-moz-placeholder {
 color:#888;
}
::-moz-placeholder {
 color:#888;
}
:-ms-input-placeholder {
 color:#888;
}

#sendButton{
    background-color: rgba(204, 204, 204, 0.52);
    color: black;
    width: 60px;
    font-weight: bold;
}

    
/*----------------- END OF FORM -----------------     */  
<link rel="stylesheet" href="form.css" type="text/css">
<div class="container5">  
<form id="contact" action="form_process.php" method="POST">    
    <h3>Contact</h3>
    <h4>Contact us today, and get reply with in 24 hours!</h4>
    <fieldset>
      <input placeholder="Your name" type="text" name="name"  tabindex="1" autofocus>
      <span class="error"><?= $name_error ?></span>
    </fieldset>
    <fieldset>
      <input placeholder="Your Email Address" type="text" name="email"  tabindex="2">
      <span class="error"><?= $email_error ?></span>
    </fieldset>
    <fieldset>
      <input placeholder="Your Phone Number" type="text" name="phone"  tabindex="3">
      <span class="error"><?= $phone_error ?></span>
    </fieldset>
    <fieldset>
      <textarea  name="message" tabindex="5">
      </textarea>
    </fieldset>
    <fieldset>
       <input  type="submit" value="Send">
    </fieldset>
    <div class="success"><?= $success ?></div>
  </form>
</div>

PHP:

<?php 

// define variables and set to empty values
$name_error = $email_error = $phone_error = "";
$name = $email = $phone = $message  = $success = "";

//form is submitted with POST method
if ($_SERVER["REQUEST_METHOD"] == "POST") {
  if (empty($_POST["name"])) {
    $name_error = "Name is required";
  } else {
    $name = test_input($_POST["name"]);
    // check if name only contains letters and whitespace
    if (!preg_match("/^[a-zA-Z ]*$/",$name)) {
      $name_error = "Only letters and white space allowed"; 
    }
  }

  if (empty($_POST["email"])) {
    $email_error = "Email is required";
  } else {
    $email = test_input($_POST["email"]);
    // check if e-mail address is well-formed
    if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
      $email_error = "Invalid email format"; 
    }
  }

  if (empty($_POST["phone"])) {
    $phone_error = "Phone is required";
  } else {
    $phone = test_input($_POST["phone"]);
    // check if e-mail address is well-formed
    if (!preg_match("/^(\d[\s-]?)?[\(\[\s-]{0,2}?\d{3}[\)\]\s-]{0,2}?\d{3}[\s-]?\d{4}$/i",$phone)) {
      $phone_error = "Invalid phone number"; 
    }
  }



  if (empty($_POST["message"])) {
    $message = "";
  } else {
    $message = test_input($_POST["message"]);
  }

  if ($name_error == '' and $email_error == '' and $phone_error == '' ){
      $message_body = '';
      unset($_POST['submit']);
      foreach ($_POST as $key => $value){
          $message_body .=  "$key: $value\n";
      }

      $to = 'thisura812@yahoo.com';
      $subject = 'Contact Form Submit';
      if (mail($to, $subject, $message)){
          $success = "Message sent, thank you for contacting us!";
          $name = $email = $phone = $message = '';
      }
  }

}

function test_input($data) {
  $data = trim($data);
  $data = stripslashes($data);
  $data = htmlspecialchars($data);
  return $data;
}

$message替换为$message_body

例子

if (mail($to, $subject, $message_body)){
          $success = "Message sent, thank you for contacting us!";
          $name = $email = $phone = $message = '';
      }