联系表格发布空字段
Contact form posts empty fields
我在 html 中设计了一个表格,我正在使用 php 将其发送到我的电子邮箱。表单验证正常,除了不发送某些信息外,一切都很好。这是我的电子邮件的方式:
Name:
Email:
Tel.:
Message: test
所以当我填写它时,唯一经过的字段是 "Message" 字段。尽管表单经过验证和处理,但其他的是空白的。我想 php 代码中有些东西。我不太了解 php,所以需要一些帮助。谢谢
<form action="post.php" method="post">
<div class="form-group">
<label for="name">Name *</label>
<input type="text" class="form-control" id="name"
placeholder="" required="required" oninvalid="this.setCustomValidity('Please enter your name')"
oninput="setCustomValidity('')">
</div>
<div class="form-group">
<label for="email">E-mail *</label>
<div class="input-group">
<span class="input-group-addon">
<span class="glyphicon glyphicon-envelope"></span>
</span>
<input type="email" class="form-control" id="email" placeholder="" required="required"
oninvalid="this.setCustomValidity('please enter your email')" oninput="setCustomValidity('')">
</div>
</div>
<div class="form-group">
<label for="name">phone *</label>
<input type="text" class="form-control" id="phone"
placeholder="" required="required" oninvalid="this.setCustomValidity('please enter your phone')"
oninput="setCustomValidity('')">
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label for="name">message *</label>
<textarea name="message" id="message" class="form-control"
rows="10" cols="25" required="required" placeholder="" oninvalid="this.setCustomValidity('please enter your message')"
oninput="setCustomValidity('')"></textarea>
</div>
</div>
<div class="col-md-12">
<button type="submit" class="btn btn-primary pull-right" id="btnContactUs">send</button>
</form>
和php代码:
<?php
$addressto = "info@xxx.com";
$subject = "Message from the website";
$content = "Name: ".$_POST['name']."\n"
."Email: ".$_POST['email']."\n"
."Tel.: ".$_POST['phone']."\n"
."Message: ".$_POST['message']."\n";
if(!$_POST['name'] || !$_POST['email'] || !$_POST['message']){
header("Location: contact.html");
}
$email = $_POST['email'];
if (mail($addressto, $subject, $content, 'Od: <' . $email . '>')) {
header("Location: contact-ok.html");
}
?>
您的输入字段缺少 name
属性
id
主要用于 JS/CSS 操作,而 name
将是 POST 数组中的键。
它们可以相同。这就是为什么你的 message
有效。
请记住,JS 验证很容易被绕过,用户输入也应该在 php 中检查。
<input type="text" class="form-control" id="name" name="name"...>
我在 html 中设计了一个表格,我正在使用 php 将其发送到我的电子邮箱。表单验证正常,除了不发送某些信息外,一切都很好。这是我的电子邮件的方式:
Name:
Email:
Tel.:
Message: test
所以当我填写它时,唯一经过的字段是 "Message" 字段。尽管表单经过验证和处理,但其他的是空白的。我想 php 代码中有些东西。我不太了解 php,所以需要一些帮助。谢谢
<form action="post.php" method="post">
<div class="form-group">
<label for="name">Name *</label>
<input type="text" class="form-control" id="name"
placeholder="" required="required" oninvalid="this.setCustomValidity('Please enter your name')"
oninput="setCustomValidity('')">
</div>
<div class="form-group">
<label for="email">E-mail *</label>
<div class="input-group">
<span class="input-group-addon">
<span class="glyphicon glyphicon-envelope"></span>
</span>
<input type="email" class="form-control" id="email" placeholder="" required="required"
oninvalid="this.setCustomValidity('please enter your email')" oninput="setCustomValidity('')">
</div>
</div>
<div class="form-group">
<label for="name">phone *</label>
<input type="text" class="form-control" id="phone"
placeholder="" required="required" oninvalid="this.setCustomValidity('please enter your phone')"
oninput="setCustomValidity('')">
</div>
</div>
<div class="col-md-12">
<div class="form-group">
<label for="name">message *</label>
<textarea name="message" id="message" class="form-control"
rows="10" cols="25" required="required" placeholder="" oninvalid="this.setCustomValidity('please enter your message')"
oninput="setCustomValidity('')"></textarea>
</div>
</div>
<div class="col-md-12">
<button type="submit" class="btn btn-primary pull-right" id="btnContactUs">send</button>
</form>
和php代码:
<?php
$addressto = "info@xxx.com";
$subject = "Message from the website";
$content = "Name: ".$_POST['name']."\n"
."Email: ".$_POST['email']."\n"
."Tel.: ".$_POST['phone']."\n"
."Message: ".$_POST['message']."\n";
if(!$_POST['name'] || !$_POST['email'] || !$_POST['message']){
header("Location: contact.html");
}
$email = $_POST['email'];
if (mail($addressto, $subject, $content, 'Od: <' . $email . '>')) {
header("Location: contact-ok.html");
}
?>
您的输入字段缺少 name
属性
id
主要用于 JS/CSS 操作,而 name
将是 POST 数组中的键。
它们可以相同。这就是为什么你的 message
有效。
请记住,JS 验证很容易被绕过,用户输入也应该在 php 中检查。
<input type="text" class="form-control" id="name" name="name"...>