Javascript HTML5、CSS3、PHP联系人表单不发送信息;添加必填字段
我已经在我的网站上添加了一个联系人表单。表单发送电子邮件,但我没有收到信息。所有的字段都是空白的。另外,我想做一些必填字段。有人吗 这里是PHPJavascript 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
$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...';}">