PHP代码无法与html

时间:2017-06-16 20:39:31

标签: php html forms email simplemodal

我很难让我的PHP和HTML在电子邮件表单上一起工作。这是我采用的网站,我不确定我错过了什么。我基本上是在模态中构建表单,因此用户必须在下载资产之前注册他们的电子邮件。因此,一旦表单发送,他们将能够连接到下一页以下载他们需要的内容。我遇到的麻烦就是表格。无论我尝试什么都行不通。救命啊!

 <div class="modal-content">
      <div class="modal-header">
        <button type="button" class="close" data-dismiss="modal">&times;</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>";
}
?>

2 个答案:

答案 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">