2016-07-08 7 views
0

Ich arbeite seit langem an diesem Kontaktformular und konnte immer noch keine funktionierende E-Mail senden. Anstatt meine Zeit damit zu verschwenden, nur verschiedene Lösungen zu erraten und zu prüfen, dachte ich mir, dass ich um Hilfe bitten könnte.Schaltfläche "Senden" sendet keine E-Mail oder startet eine Aktion auf dem Server

Das Formular sieht wie folgt aus:

<form action="assets/php/contact.php" name="contact" id="contact" role="form" method="post"> 
 
    <div class="form-group"> 
 
    <label class="sr-only" for="name">Name</label> 
 
    <input type="text" id="name" class="form-control" name="name" placeholder="Name*" required="" data-validation-required-message="Please enter your name."> 
 
    <p class="help-block text-danger"></p> 
 
    </div> 
 
    <div class="form-group"> 
 
    <label class="sr-only" for="email">Email</label> 
 
    <input type="email" id="email" name="email" class="form-control" placeholder="Your E-mail*" required="" data-validation-required-message="Please enter your email address."> 
 
    <p class="help-block text-danger"></p> 
 
    </div> 
 
    <div class="form-group"> 
 
    <label class="sr-only" for="category">Video Category</label> 
 
    <input type="text" id="category" class="form-control" name="category" placeholder="Category*" required="" data-validation-required-message="Please enter the catergory."> 
 
    <p class="help-block text-danger"></p> 
 
    </div> 
 
    <div class="form-group"> 
 
    <textarea class="form-control" id="message" name="message" rows="7" placeholder="Message*" required data-validation-required-message="Please enter your message."></textarea> 
 
    <p class="help-block text-danger"></p> 
 
    </div> 
 
    <div class="text-center"> 
 
    <button type="submit" name="submit" class="btn btn-block btn-round btn-dark">Submit</button> 
 
    </div> 
 
</form>

Alle meine contact.php Datei sieht so aus:

<?php 
     $name = $_POST['name']; 
     $email = $_POST['email']; 
     $message = $_POST['message']; 
     $category = $_POST['category']; 
     $from = 'Contact Form'; 
     $to = '[email protected]'; 
     $body = "From: $name\n Category: $category\n E-Mail: $email\n Message:\n $message"; 
    if ($_POST['submit']) { 
     if (mail ($to, $subject, $body, $from)) { 
     $result='<div class="alert alert-success">Thank You! I will be in touch</div>'; 
    } else { 
     $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>'; 
    } 
} 
?> 

Zeit, wenn ich die Submit-Button auf meiner Seite drücken , die Seite tut nichts. Bevor ich einen 404-Fehler für meine PHP-Datei bekommen habe, habe ich das anscheinend behoben.

+0

Sie nicht über einen Wert für '$ _POST [ 'submit'], so wird dies nicht gelingen' if ($ _ POST [ 'submit']) 'Wert der Taste zuweisen oder entfernen, wenn Anweisung – David

+0

Ist das der korrektes Format ohne die if-Anweisung? '$ _POST ['submit'] { wenn (mail ($ zu, $ subject, ...' –

+0

nein ist es nicht. Das ist sehr grundlegende PHP, die Sie kennen sollten – David

Antwort

0

Dieses:

<button type="submit" name="submit" class="btn btn-block btn-round btn-dark">Submit</button> 

Wahrscheinlich sollte dies sein:

<input type="submit" name="submit" value="submit" class="btn btn-block btn-round btn-dark"> 
+0

Ich habe versucht, die Lösung, aber es lief immer noch nicht das Skript und senden Sie die E-Mail. –

0

<form> Tag kein name-Attribut braucht und sollten Sie

<button type="submit" name="submit" class="btn btn-block btn-round btn-dark">Submit</button> 

mit diesem

ersetzen
<input type="submit" name="submit" class="btn btn-block btn-round btn-dark"> 

Ihre PHP-Code wird nicht definiert Indexfehler werfen, weil es keine solche _POST $ ist [ ‚name‘] oder $ _POST [ ‚E-Mail‘] noch nicht, aber es wird die Ausführung nicht aufhören Sie es in diesem

ändern sollte
<?php 
     if (isset($_POST['submit'])) { 

      $name = $_POST['name']; 
      $email = $_POST['email']; 
      $message = $_POST['message']; 
      $category = $_POST['category']; 
      $from = 'Contact Form'; 
      $to = '[email protected]'; 
      $body = "From: $name\n Category: $category\n E-Mail: $email\n Message:\n $message"; 
      if (mail ($to, $subject, $body, $from)) { 
      $result='<div class="alert alert-success">Thank You! I will be in touch</div>'; 
     } else { 
      $result='<div class="alert alert-danger">Sorry there was an error sending your message. Please try again later</div>'; 
     } 
    } 
    ?> 
+0

Ok Ich habe diese Lösung ausprobiert, aber sie sendet die E-Mail immer noch nicht. –

+0

ok, nachdem Sie den Submit-Button gedrückt haben, was bekommen Sie? Wenn eine leere leere Seite ist was Sie bekommen, versuchen Sie, etwas in der if-Anweisung zu echo, um zu überprüfen, ob das Formular gesendet wird oder nicht –

+0

Ich bekomme keine Antwort visuell wie die Website nicht ändert, aber in Chrom Inspektionsansicht, blinkt das Formular Ich weiß also, dass der Button funktioniert. –