我目前正在使用Bootstrap框架和PHP设置一个功能齐全的联系表单。我正在接收来自表单的测试电子邮件,但它没有按照我理解的方式显示内容,而且还有一些其他问题。
首先,用户提交的电子邮件显示为从我的网站主机收到。它也不包括这个人的名字,我认为这个名字包含在我的PHP中
这是我的contact.php代码和index.html文件中的表单
<?php
$to = 'example@gmail.com';
$name = $_POST['name'];
$email = $_POST['email'];
$subject=$_POST['subject'];
$message = $_POST['msg'];
if ($_POST){
mail($to, $subject, $message);
$confirm= "Your email was sent successfully!";
echo "<script type='text/javascript'>confirm('$confirm');</script>";
}
else {
$error_msg= "All fields are required!";
echo "<script type='text/javascript'>alert('$error_msg');</script>";
}
?>
的index.html
<form class="form-horizontal" role="form" action="contact.php" method="post">
<div class="modal-header">
<h2>Contact</h2>
</div>
<div class="modal-body">
<!--name-->
<div class="form-group">
<label for="name" class="col-sm-2 control-label">Name</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="name" id="name" placeholder="First and Last Name">
</div>
</div>
<!--email-->
<div class="form-group">
<label for="email" class="col-sm-2 control-label">Email</label>
<div class="col-sm-10">
<input type="email" class="form-control" name="email" id="email" placeholder="example@somewhere.com">
</div>
</div>
<!--subject-->
<div class="form-group">
<label for="subject" class="col-sm-2 control-label">Subject</label>
<div class="col-sm-10">
<input type="text" class="form-control" name="subject" id="subject" placeholder="Enter subject here...">
</div>
</div>
<!--message-->
<div class="form-group">
<label for="msg" class="col-sm-2 control-label">Message</label>
<div class="col-sm-10">
<textarea class="form-control" rows="4" name="msg" id="msg" placeholder="Enter message here..."></textarea>
</div>
</div>
</div>
<div class="modal-footer">
<a class="btn btn-default" data-dismiss="modal">Close</a>
<button type="submit" class="btn btn-primary">Send</button>
</div>
</form>
另一个意外问题是,一旦提交了页面,就会加载一个空白页面(contact.php)。我想,看着我的代码,会弹出一个javascript警告或确认框而不是?我是新来的,如果这些都是愚蠢的问题,我道歉。
由于 -K
答案 0 :(得分:1)
首先,您没有在标题中定义。你需要
$headers = "From: sender_email@your_domain.com\r\n";
mail($to,$subject,$message,$headers);
除了设置from和cc:carbon copy或bcc:blind carbon copy email address之外,您还可以修改标题以发送大多数情况下所需的html消息。
// Always set content-type when sending HTML email
$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
// More headers
$headers .= 'From: <webmaster@example.com>' . "\r\n";
$headers .= 'Cc: myboss@example.com' . "\r\n";
将此代码合并到您的if语句中。我也注意到你有
else {
$error_msg= "All fields are required!";
即使只有一个字段作为$ _POST方法传入,else语句也不会检查是否所有字段都已传入。您需要将其分解或单独检查字段或使用客户端执行边JavaScript字段验证。
什么是确认javascript功能?你能把它贴在这里吗?如果您只是寻找警报,则可以在脚本标记之间直接插入警报功能。