我很难让我的PHP和HTML在电子邮件表单上一起工作。这是我采用的网站,我不确定我错过了什么。我基本上是在模态中构建表单,因此用户必须在下载资产之前注册他们的电子邮件。因此,一旦表单发送,他们将能够连接到下一页以下载他们需要的内容。我遇到的麻烦就是表格。无论我尝试什么都行不通。救命啊!
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">×</button>
<h4 class="modal-title">Download 3D Models</h4>
</div>
<div class="modal-body">
<div class="container slate">
<div class="row">
<div class="col-md-6">
<form name="send_form_email" action="../quform/send_form_email.php" method="get" enctype="multipart/form-data">
<div class="quform-elements">
<div class="form-group">
<label for="email">Name <span class="text-danger">*</span></label>
<input id="name" type="text" name="name" class="form-control" placeholder="Name">
</div>
<div class="form-group">
<label for="company">Company / Firm <span class="text-danger">*</span></label>
<input id="company" type="text" name="email" class="form-control" placeholder="Company / Firm">
</div>
<div class="form-group">
<label for="email">Email<span class="text-danger">*</span></label>
<input id="email" type="text" name="email" class="form-control" placeholder="Email">
</div>
<div class="quform-element quform-element-recaptcha">
<div class="quform-spacer">
<label>Are you human?<span class="text-danger">*</span></label>
<div class="quform-input" style="width: 250px;">
<script src="https://www.google.com/recaptcha/api.js" async defer></script>
<div class="g-recaptcha" data-sitekey="6Le2WvkSAAAAAP9bLeD4OaiVYvDrHXhcKaFo1chy"></div>
<noscript>
<div style="width: 302px; height: 352px;">
<div style="width: 302px; height: 352px; position: relative;">
<div style="width: 302px; height: 352px; position: absolute;">
<iframe src="https://www.google.com/recaptcha/api/fallback?k=6Le2WvkSAAAAAP9bLeD4OaiVYvDrHXhcKaFo1chy" frameborder="0" scrolling="no" style="width: 302px; height:352px; border-style: none;">
</iframe>
</div>
<div style="width: 250px; height: 80px; position: absolute; border-style: none; bottom: 21px; left: 25px; margin: 0px; padding: 0px; right: 5px;">
<textarea id="g-recaptcha-response" name="g-recaptcha-response" class="g-recaptcha-response" style="width: 250px; height: 80px; border: 1px solid #c1c1c1; margin: 0px; padding: 0px; resize: none;"></textarea>
</div>
</div>
</div>
</noscript>
</div>
</div>
</div><!--/.recaptcha -->
<div class="form-group">
<button type="reset" class="btn btn-default">Cancel</button>
<button type="submit" class="btn btn-primary" value="Send">Send</button>
</div>
</div> <!--/. quform-elements-->
</form>
</div> <!--/.col-md-6-->
<?php
$name = $_POST['name']; //'name' has to be the same as the name value on the form input element
$company = $_POST['company'];
$email = $_POST['email'];
$human = $_POST['human'];
$from = $_POST['email'];
$to = 'xxx@gmail.com'; //set to the default email address
$subject = $_POST['3D Model Request'];
$body = "From: $name\n Company: $company/n E-Mail: $email\n";
$headers = "From: $email" . "\r\n" .
"Reply-To: $email" . "\r\n" .
"X-Mailer: PHP/" . phpversion();
if(isset($_POST['submit']) && ($_POST['human']) == '4') {
mail ($to, $subject, $body, $headers); //mail sends it to the SMTP server side which sends the email
echo "<p>Your message has been sent!</p>";
}
else {
echo "<p>Something went wrong, go back and try again!</p>";
}
if (!isset($_POST['submit']) && ($_POST['human']) != '4') {
echo "<p>You answered the anti-spam question incorrectly!</p>";
}
?>
答案 0 :(得分:0)
您的表单在get中发送数据,但在php端,您正在等待从POST
获取数据,更改表单的method
以使其正常工作。
应为method="POST"
您还有多个email
输入(它们具有相同的名称)。
而且您没有从此表单
$human = $_POST['human'];
和$subject = $_POST['3D Model Request'];
答案 1 :(得分:0)
你的表单有method="get"
,你的php逻辑正在期待从未设置的POST数据,因为你是通过get提交的。
将表单更改为method="POST"
。
<form name="send_form_email" action="../quform/send_form_email.php" method="POST" enctype="multipart/form-data">