2016-08-18 14 views
-2

Ich habe ein Problem und ich kann nicht herausfinden, ob es mein PHP oder Server-Problem ist.PHP HTML5 Kontaktformular nicht senden

Ich erstellte ein Kontaktformular 'contact.php' ist alles auf der gleichen Seite, die HTML & PHP.

Ich habe den Code immer wieder überprüft und kann keinen Fehler finden. Ich erhalte keine E-Mails in der endgültigen Ziel-E-Mail. Kann mir jemand helfen? Dies ist der Code, den ich

Hier ist meine E-Mail-Code haben:

$to = 'MY EMAIL ADDRESS GOES HERE'; 
    $subject = 'New Contact Submission on '; 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 

$body = <<<EMAIL 

    Hi! My name is $name 

    My Email is $email 

    $message 


    EMAIL; 

     $header = "from: $email"; 

     if($_POST){ 
     if($name == '' || $email == '' || $message == ''){ 
      $feedback = 'Please Fill all areas'; 

     }else{ 

      mail($to, $subject, $body, $header); 
     $feedback = 'Thank you! We will contact you soon!'; 

     } 
    } 


?> 


Hier ist mein HTML-Code für das Kontaktformular. Denken Sie daran, ich habe dies in 1 einzigen 'contact.php' Datei.

     <form action="" method="post"> 
          <div class="col-md-12"> 
           <div class="form-group"> 
            <label for="name" class="sr-only" >Name</label> 
            <input placeholder="Name" id="name" type="text" class="form-control input-lg"> 
           </div> 
          </div> 
          <div class="col-md-12"> 
           <div class="form-group"> 
            <label for="email" class="sr-only" >Email</label> 
            <input placeholder="Email" id="email" type="text" class="form-control input-lg"> 
           </div> 
          </div> 

          <div class="col-md-12"> 
           <div class="form-group"> 
            <label for="message" class="sr-only" >Message</label> 
            <textarea placeholder="Message" id="message" class="form-control input-lg" rows="3"></textarea> 
           </div> 
          </div> 
          <div class="col-md-12"> 
           <div class="form-group"> 
            <input type="submit" class="btn btn-primary btn-lg " action="" value="Send"> 
            <p id="feedback"><?php echo $feedback;?></p> 
           </div> 
          </div> 


         </form> 
+1

Bitte [Format] (http://stackoverflow.com/help/formatting) Deine Post korrekt. – Script47

+0

Bitte lesen Sie auch (http://php.net/manual/en/tutorial.forms.php), wie Sie mit Formularen umgehen. – Script47

+1

Ja, ich habe die Bearbeitung aufgegeben. Verwenden Sie keine '>' Zeichen beim Formatieren, noch '##' weder. –

Antwort

0

Ich kann nicht sagen, ob seine zwei einfachen Anführungszeichen oder ein doppeltes Anführungszeichen

if($_POST){ if($name == " || $email == " || $message == ") 

dies falsch ist? Meinst du:

+0

Wenn Sie sich ihren Code im Bearbeitungsmodus angeschaut haben (was ein totaler Durcheinander ist, würde ich hinzufügen), werden Sie sehen, dass sie schon '$ name = $ _POST ['name'];' und für die anderen vorher erklärt haben die Bedingungen. –

+0

eine andere Bearbeitung steht ausstehende Überprüfung .... danke für den Tipp aber – brad

+0

Ich habe die Bearbeitung genehmigt, so werden wir sehen, wie das aussieht. * Prost * –

1

Ich bemerkte, dass du eine deiner if-Anweisung-Klammern zweimal geschlossen und eine andere an der falschen Stelle geschlossen hast.

Sie haben Ihren HTML-Eingaben auch keinen Namen hinzugefügt.

Dieser korrigierte Code funktioniert ...

PHP

<?php 

    $to = 'Your email'; $subject = 'New Contact Submission on '; 

    $name = $_POST['name']; 
    $email = $_POST['email']; 
    $message = $_POST['message']; 

    $body = "Hi! My name is $name 

    My Email is $email 

    $message"; 

    $header = "from: $email"; 

    if($_POST){ 
     if($name == '' || $email == '' || $message == ''){ 
      $feedback = 'Please Fill all areas'; 
     } 
    }else{ 

     mail($to, $subject, $body, $header); 
     $feedback = 'Thank you! We will contact you soon!'; 

    } 

?> 

HTML

<form action="" method="post"> 
    <div class="col-md-12"> 
     <div class="form-group"> 
      <label for="name" class="sr-only" >Name</label> 
      <input placeholder="Name" id="name" type="text" class="form-control input-lg" name="name"> 
     </div> 
    </div> 
    <div class="col-md-12"> 
     <div class="form-group"> 
      <label for="email" class="sr-only" >Email</label> 
      <input placeholder="Email" id="email" type="text" class="form-control input-lg" name="email"> 
     </div> 
    </div> 

    <div class="col-md-12"> 
     <div class="form-group"> 
      <label for="message" class="sr-only" >Message</label> 
      <textarea placeholder="Message" id="message" class="form-control input-lg" rows="3" name="message"></textarea> 
     </div> 
    </div> 
    <div class="col-md-12"> 
     <div class="form-group"> 
      <input type="submit" class="btn btn-primary btn-lg " action="" value="Send"> 
      <p id="feedback"><?php echo $feedback;?></p> 
     </div> 
    </div> 
</form> 
+0

Hallo Yudi! Vielen Dank! Ich habe gerade diesen Code ausprobiert und es scheint zu funktionieren, aber es sendet die E-Mail nicht an ihr endgültiges Ziel, wo ich die von zu gehen brauche. Irgendeine Idee, wenn es irgendetwas auf dem Server oder hier ist? Vielen Dank! – Accu1

+0

@ Accu1 Ich habe auf phpfiddle.org getestet und die E-Mail an meine E-Mail gesendet, also sage ich, es ist ein Problem mit Ihrem Server. Ich würde es sehr schätzen, wenn Sie mit der besten Antwort belohnen würden, da ich neu bin und die Unterstützung brauche, danke! –

+0

Hallo, es funktioniert, aber mein Server gibt diesen Fehler "SMTP-Fehler vom Remote-Mail-Server nach dem Ende der Daten: 550 Nachrichten sollte eine oder keine From Header, nicht 2." Irgendeine Hilfe? Vielen Dank – Accu1

Verwandte Themen