PHP表单不发送新字段的值

时间:2015-04-26 17:18:36

标签: php html

我正在处理网站的联系表单,但我遇到了问题。我需要在包含电话号码的表单中添加一个字段。我已将该字段添加到HTML和PHP脚本中,它发送“电话号码:”但不是实际值。

HTML

<form action="php/contact-form.php" id="contactForm" type="post">
    <div class="row">
	 <div class="form-group">
	      <div class="col-md-6">
	          <label>Uw naam</label>
		  <input type="text" value="" data-msg-required="Vul alstublieft uw naam in." maxlength="100" class="form-control" name="name" id="name">
	      </div>
	      <div class="col-md-6">
		   <label>Uw emailadres</label>
		   <input type="email" value="" data-msg-required="Vul alstublieft uw emailadres in." data-msg-email="Voer alstublieft een correct emailadres in." maxlength="100" class="form-control" name="email" id="email">
	      </div>
	  </div>
    </div>
	<div class="row">
	     <div class="form-group">
	         <div class="col-md-6">
	              <label>Uw telefoonnummer</label>
                      <input type="text" value="" data-msg-required="Vul alstublieft uw telefoonnummer in." maxlength="100" class="form-control" name="phone" id="phone">
		 </div>
	         <div class="col-md-6">
	             <label>Onderwerp</label>
		     <input type="text" value="" data-msg-required="Vul alstublieft een onderwerp in." maxlength="100" class="form-control" name="subject" id="subject">
		</div>
	 </div>
     </div>
     <div class="row">
	 <div class="form-group">
	      <div class="col-md-12">
		   <label>Uw bericht</label>
		   <textarea maxlength="5000" data-msg-required="Vul alstublieft uw bericht in." rows="10" class="form-control" name="message" id="message"></textarea>
             </div>
	 </div>
     </div>
     <div class="row">
	  <div class="col-md-12">
		   <input type="submit" value="Verstuur" class="btn btn-primary btn-lg" data-loading-text="Laden...">
	  </div>
  </div>
</form>

PHP

<?php
session_cache_limiter('nocache');
header('Expires: ' . gmdate('r', 0));

header('Content-type: application/json');

// Enter your email address below.
$to = 'email@removedforprivacyreasons.com';

$subject = $_POST['subject'];

if($to) {
	$name = $_POST['name'];
	$email = $_POST['email'];
	
	$fields = array(
		0 => array(
			'text' => 'Naam',
			'val' => $_POST['name']
		),
		1 => array(
			'text' => 'Emailadres',
			'val' => $_POST['email']
		),
		2 => array(
			'text' => 'Telefoonnummer',
			'val' => $_POST['phone']
		),
		3 => array(
			'text' => 'Bericht',
			'val' => $_POST['message']
		)
	);
	
	$message = "";

	foreach($fields as $field) {
		$message .= $field['text'].": " . htmlspecialchars($field['val'], ENT_QUOTES) . "<br>\n";
	}

	$headers = '';
	$headers .= 'From: ' . $name . ' <' . $email . '>' . "\r\n";
	$headers .= "Reply-To: " .  $email . "\r\n";
	$headers .= "MIME-Version: 1.0\r\n";
	$headers .= "Content-Type: text/html; charset=UTF-8\r\n";

	if (mail($to, $subject, $message, $headers)){
		$arrResult = array ('response'=>'success');
	} else{
		$arrResult = array ('response'=>'error');
	}

	echo json_encode($arrResult);

} else {

	$arrResult = array ('response'=>'error');
	echo json_encode($arrResult);

}
?>

我忽略了什么?

2 个答案:

答案 0 :(得分:0)

好像您在手机输入上使用type="text"。可能不是核心问题,但您可以尝试使用数字类型:

<input type="number" name="phone" min="5" max="15">

即使它不能解决您的问题,它仍然是更清洁的方式(具有一些优势,如在移动设备上显示数字键盘)。

希望这会有所帮助:)

答案 1 :(得分:0)

您要将表单作为获取数据发送,请尝试更改type =&#34; post&#34; to method =&#34; post&#34;