联系表未返回正确信息
Contact form not returning proper information
我目前正在使用 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
首先,您没有在 header 中定义 from。你需要
$headers = "From: sender_email@your_domain.com\r\n";
mail($to,$subject,$message,$headers);
除了设置from和cc:carbon copy或bcc:blind carbon copy电子邮件地址外,您还可以修改header发送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 语句也不会检查是否所有字段都已传入。您需要将其分解或单独检查字段或在客户端上执行side JavaScript 字段验证。
什么是确认 javascript 功能?你能 post 放在这里吗?如果您只是在寻找警报,您可以直接在脚本标签之间插入警报功能。
我目前正在使用 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
首先,您没有在 header 中定义 from。你需要
$headers = "From: sender_email@your_domain.com\r\n";
mail($to,$subject,$message,$headers);
除了设置from和cc:carbon copy或bcc:blind carbon copy电子邮件地址外,您还可以修改header发送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 语句也不会检查是否所有字段都已传入。您需要将其分解或单独检查字段或在客户端上执行side JavaScript 字段验证。
什么是确认 javascript 功能?你能 post 放在这里吗?如果您只是在寻找警报,您可以直接在脚本标签之间插入警报功能。