2017-06-16 75 views
-3

我很难让我的PHP和HTML在电子邮件表单上一起工作。这是我采用的网站,我不确定我错过了什么。我基本上是在一种模式下构建一个表单,因此用户必须在下载资产之前注册他们的电子邮件。所以,一旦表单被发送,他们将能够连接到下一页来下载他们需要的东西。我遇到的麻烦是与形式。无论我尝试什么都行不通。帮帮我!未使用html连接的PHP代码

<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 = '[email protected]'; //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

难道电子邮件发送到'$到= '[email protected]';'? – Jite

+2

你发送的数据在你的表单中,而在等待POST在php中,你应该改变'method =“get”'为'method =“post”' –

+0

我只是把它作为占位符来保护我的电子邮件。使用我的真实电子邮件没有帮助。 – JillPut

回答

0

你的形式发送的获取数据,但在PHP端你正在等待从POST获取数据,更改method您的形式,使之工作。 应该是method="POST" 也有多个email输入(它们具有相同的名称)。 你不能从这种形式

0

在窗体中有method="get"接收$human = $_POST['human'];$subject = $_POST['3D Model Request'];和你的PHP逻辑期待,因为你通过GET提交这是从来没有设置POST数据。

更改表格以代替method="POST"

<form name="send_form_email" action="../quform/send_form_email.php" method="POST" enctype="multipart/form-data">

+0

我试过了,它仍然不能正常工作。任何其他想法? – JillPut

+0

在你的PHP文件的顶部做var_dump($ _ POST),看看数据是否被提交到你的页面进行处理。 –

+0

已添加。在我的表单上点击“提交”后,它给了我一个带有代码的空白页面。所以有些东西只是不能正确处理。 – JillPut