Javascript HTML5、CSS3、PHP联系人表单不发送信息;添加必填字段

Javascript HTML5、CSS3、PHP联系人表单不发送信息;添加必填字段,javascript,php,html,css,forms,Javascript,Php,Html,Css,Forms,我已经在我的网站上添加了一个联系人表单。表单发送电子邮件,但我没有收到信息。所有的字段都是空白的。另外,我想做一些必填字段。有人吗 这里是PHP <?php $field_name = $_POST['Name...']; $field_email = $_POST['Email...']; $field_phone = $_POST['Phone...']; $field_company = $_POST['Company']; $field_message = $_POST['Mess

我已经在我的网站上添加了一个联系人表单。表单发送电子邮件,但我没有收到信息。所有的字段都是空白的。另外,我想做一些必填字段。有人吗

这里是PHP

<?php
$field_name = $_POST['Name...'];
$field_email = $_POST['Email...'];
$field_phone = $_POST['Phone...'];
$field_company = $_POST['Company'];
$field_message = $_POST['Message...'];

$mail_to = 'email@me.com';
$subject = '#Message from Website# '.$field_name;

$body_message .= 'From: '.$field_name."\n";
$body_message .= 'Email: '.$field_email."\n";
$body_message .= 'Phone: '.$field_phone."\n";
$body_message .= 'Company: '.$field_company."\n";
$body_message .= 'Message: '.$field_message."\n";

$headers = 'From: '.$E-Mail."\r\n";
$headers .= 'Reply-To: '.$E-Mail."\r\n";

$mail_status = mail($mail_to, $subject, $body_message, $headers);

if ($mail_status) { ?>
 <script language="javascript" type="text/javascript">
  alert('Thank you for the message. We will contact you shortly.');
  window.location = 'index.html';
 </script>
<?php
}
else { ?>
 <script language="javascript" type="text/javascript">
  alert('Message sending failed. Please, send an email to         
email@me.com');
  window.location = 'index.html';
 </script>
<?php }
?>

警报('谢谢您的消息。我们将很快与您联系');
window.location='index.html';
警报('邮件发送失败。请发送电子邮件至
email@me.com');
window.location='index.html';
这是表格

<form action="contact.php" method="post">
    <input type="text" class="text" value="Name..." onfocus="this.value = '';" onblur="if (this.value =='') {this.value = 'Name...';}">
    <input type="text" class="text" value="Email..." onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Email...';}">
    <input type="text" class="text" value="Phone..." onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Phone...';}">
    <input type="text" class="text" value="Company..." onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Company...';}">
    <textarea value="Message..." onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Message';}">Message...</textarea>
    <input class="wow shake" data-wow-delay="0.3s" type="submit" value="Send Message" />
</form>

消息

如果您的
$\u POST
应该为您的属性返回一些内容,您需要在您创建的每个输入字段中指定属性
名称
,并在$\u POST中声明相应的值

此外,您可能会面临空白页,这意味着您有语法错误

不难找到问题所在

在代码片段的第4行,我可以看到声明变量中有一个字母
v

<?php
$field_name = $_POST['Name...'];
$field_email = $_POST['Email...'];
v$field_phone = $_POST['Phone...'];
$field_company = $_POST['Company'];
$field_message = $_POST['Message...'];

它是空的,因为您的输入没有name属性。所有输入都需要name属性。例如:

<input type="text" value="" id="first_name" name="first_name" />

HTML中没有名称属性。确保有name属性,以便在PHP中可以访问它们


此外,请注意不要将属性命名为“name…”,请删除点。您可以使用
if
检查值是否为空,例如:

if(!empty($field_name)) {
   // the field name is not empty and you can send the mail
   $mail_status = mail($mail_to, $subject, $body_message, $headers);
}
您还必须为
字段提供正确的名称。您可以这样做:

<?php $field_name = $_POST['fieldname']; ?>
<input name="fieldname" />

您犯了一个简单的错误-当html输入元素发布到php表单时,它在
$\u POST
数组中填充的索引基于html元素的
name
属性,但您使用的是
value
属性

我也会避免在
name
属性中使用诸如句点之类的奇怪字符

试着替换

<input type="text" class="text" value="Name..." onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name...';}">



此行有一个额外的
v
v$field\u phone=$\u POST['phone…']这是一个复制粘贴错误。。。我的错。现在,我怎样才能使字段成为必需的?我先发布了我的答案?为什么我没有获得投票?现在,我如何才能设置所需字段?设置所需字段的if函数不起作用。。。还有其他建议吗?@RafaelGranato:我的回答已经完成,因为你的话题中又出现了一个错误,我想请你接受我的回答。我修复了代码中的两个问题。顺便说一下,我编辑了我的答案,包括如何将必填字段放在字段中。=)
<input type="text" class="text" name="Name" onfocus="this.value = '';" onblur="if (this.value == '') {this.value = 'Name...';}">