2017-06-16 2 views
-3

Ich habe eine sehr schwierige Zeit, meine PHP und HTML zusammen zu arbeiten auf einem E-Mail-Formular. Dies ist eine Website, die ich adoptiert habe und ich bin mir nicht sicher, was ich vermisse. Ich baue im Grunde ein Formular in einem Modal, so dass Benutzer ihre E-Mail registrieren müssen, bevor sie Assets herunterladen. Sobald das Formular gesendet wurde, können Sie sich mit der nächsten Seite verbinden, um die benötigten Informationen herunterzuladen. Das Problem, das ich habe, ist mit der Form. Was ich auch versuche, funktioniert nicht. Hilfe!PHP-Code keine Verbindung mit 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 = '[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

Könnte es sein, dass die E-Mail an '$ to = '[email protected]' gesendet wird;'? – Jite

+2

Sie senden Daten in Ihrem Formular, während Sie auf POST in PHP warten, sollten Sie 'method =" get "' zu 'method =" post "' –

+0

Ich habe das nur als Platzhalter zum Schutz meiner E-Mail. Die Verwendung meiner echten E-Mail hat nicht geholfen. – JillPut

Antwort

0

Ihre Formulardaten in get senden, aber auf PHP-Seite warten auf Sie Daten von POST zu bekommen, method des Formulars zu ändern, es zu machen Arbeit. Sollte method="POST" sein Auch haben Sie mehrere email Eingänge (sie haben den gleichen Namen). Und Empfangen Sie nicht $human = $_POST['human']; und $subject = $_POST['3D Model Request']; von dieser Form

0

Ihre Form hat method="get" und Ihre PHP-Logik POST-Daten erwartet, die nie, weil Sie über get Einreichung sind gesetzt.

Ändern Sie das Formular, um stattdessen method="POST" zu haben.

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

+0

Ich habe das auch versucht und es funktioniert immer noch nicht. Irgendwelche anderen Ideen? – JillPut

+0

Führen Sie oben in Ihrer PHP-Datei var_dump ($ _ POST) aus und prüfen Sie, ob die Daten zur Verarbeitung an Ihre Seite gesendet werden. –

+0

Hinzugefügt. Nachdem ich in meinem Formular auf "Senden" geklickt habe, wird eine leere Seite mit dem Code angezeigt. Also etwas wird gerade nicht richtig verarbeitet. – JillPut