2017-01-31 6 views
1

Ich habe ein Kontaktformular codiert, aber aus irgendeinem Grund bekomme ich nicht wirklich die E-Mail, aber der PHP-Code hat keine Fehler und das Formular gibt eine Erfolgsmeldung zurück. Ich habe meine E-Mail-Adresse aus dem Code hier entfernt.Kontaktformular - Senden/Empfangen von Problemen

Kontaktformular

<body> 
<div class='formbody'> 

<link href='http://fonts.googleapis.com/css?family=Lato' rel='stylesheet' type='text/css'> 

<form id="contact-form" action="send.php" method="POST"> 

    <p>Hi</p> 
    <p>My 
    <label for="your-name">name</label> is 
    <input type="text" name="your-name" id="your-name" minlength="3" placeholder="(your name here)" required> and</p> 

    <p>my 
    <label for="email">email address</label> is 
    <input type="email" name="your-email" id="email" placeholder="(your email address)" required> 
    </p> 

    <p> I have a 
    <label for="your-message">message</label> for you,</p> 

    <p> 
    <textarea name="your-message" id="your-message" placeholder="(your msg here)" class="expanding" required></textarea> 
    </p> 
    <p> 
    <button type="submit"> 
     <svg version="1.1" class="send-icn" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100px" height="36px" viewBox="0 0 100 36" enable-background="new 0 0 100 36" xml:space="preserve"> 
     <path d="M100,0L100,0 M23.8,7.1L100,0L40.9,36l-4.7-7.5L22,34.8l-4-11L0,30.5L16.4,8.7l5.4,15L23,7L23.8,7.1z M16.8,20.4l-1.5-4.3 
    l-5.1,6.7L16.8,20.4z M34.4,25.4l-8.1-13.1L25,29.6L34.4,25.4z M35.2,13.2l8.1,13.1L70,9.9L35.2,13.2z" /> 
     </svg> 
     <small>SEND PLEASE</small> 
    </button> 
    </p> 
</form> 
    <script src="assets/js/jquery.min.js"></script> 
    <script src="assets/bootstrap/js/bootstrap.min.js"></script> 
    <script src="assets/js/bs-animation.js"></script> 
    <script src="assets/js/index.js"></script> 
    </div> 
</body> 
</html> 

send.php

<?php 
$page='contactus'; 
include('header.php'); 
include('navbar.php'); 

?> 

<?php 
$to = 'removed'; 
$name = TRIM (stripslashes($_POST['your-name'])); 
$email = TRIM (stripslashes($_POST['your-email'])); 
$message = TRIM (stripslashes($_POST['your-message'])); 
$subject = 'Message'; 


$name = 'Name: '; 
$email= 'From:'; 
$message= 'Message: '; 





if(mail($to, $subject, $name , $email , $message)){ 
     echo 'success'; 

} 

else{ 

    print('There has been a small error . Sorry!!'); 
} 

?> 
+0

E-Mail-Funktion folgt immer dieser Regel Mail (zu, Betreff, Nachricht, Header, Parameter); –

+0

Ok, nicht ganz sicher, was du meinst.? Können Sie bitte erläutern? – Bill04

Antwort

1

So haben Sie Ihre Header oder hinzugefügt Header in hier nicht gesendet.

Also anstatt das Bestehen der Form in eine neue Datei (send.php) fügen wir die Logik send.php und die Form-Datei benötigen sie an der Spitze des Codes wie folgt:

<?php 

require 'send.php'; 

$send = new sendEmail(); 
?> 

<body> 
<div class='formbody'> 
    <?php 
    if (isset($_POST['sendForm'])) 
    { 
     $send->sendMail($_POST['your-name'], $_POST['your-email'], $_POST['your-message']); 
    } 
    ?> 
    <link href='http://fonts.googleapis.com/css?family=Lato' rel='stylesheet' type='text/css'> 

    <form id="contact-form" action="" method="post"> 

     <p>Hi</p> 
     <p>My 
      <label for="your-name">name</label> is 
      <input type="text" name="your-name" id="your-name" minlength="3" placeholder="(your name here)" required> and</p> 

     <p>my 
      <label for="email">email address</label> is 
      <input type="email" name="your-email" id="email" placeholder="(your email address)" required> 
     </p> 

     <p> I have a 
      <label for="your-message">message</label> for you,</p> 

     <p> 
      <textarea name="your-message" id="your-message" placeholder="(your msg here)" class="expanding" required></textarea> 
     </p> 
     <p> 
      <button type="submit" name="sendForm"> 
       <svg version="1.1" class="send-icn" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="100px" height="36px" viewBox="0 0 100 36" enable-background="new 0 0 100 36" xml:space="preserve"> 
     <path d="M100,0L100,0 M23.8,7.1L100,0L40.9,36l-4.7-7.5L22,34.8l-4-11L0,30.5L16.4,8.7l5.4,15L23,7L23.8,7.1z M16.8,20.4l-1.5-4.3 
    l-5.1,6.7L16.8,20.4z M34.4,25.4l-8.1-13.1L25,29.6L34.4,25.4z M35.2,13.2l8.1,13.1L70,9.9L35.2,13.2z" /> 
     </svg> 
       <small>SEND PLEASE</small> 
      </button> 
     </p> 
    </form> 
    <script src="assets/js/jquery.min.js"></script> 
    <script src="assets/bootstrap/js/bootstrap.min.js"></script> 
    <script src="assets/js/bs-animation.js"></script> 
    <script src="assets/js/index.js"></script> 
</div> 
</body> 
</html> 

dann in der send.php Datei würden Sie hinzufügen:

<?php 

class sendEmail 
{ 
    public function sendMail($name, $email, $message) 
    { 
     if (!empty($name)) 
     { 
      if (!empty($email)) 
      { 
       if (!empty($message)) 
       { 
        $email_to = 'YOUR EMAIL ADDRESS'; 
        $header = 'From: ' . $name ."<[email protected]/com>". "\r\n" . 
         'Reply-To: ' . $email . "\r\n" . 
         'X-Mailer: PHP/' . phpversion(); 

        @mail($email_to, 'Enquiry Received', 'Name: ' . $name . "\r\n\r\n". 'Email: ' .$email. "\r\n\r\n". 'Message: ' .$message."\r\n\r\n", $header); 

        echo "Thanks for contacting us"; 

       } else { 
        echo "Please enter a message"; 
       } 
      } else { 
       echo "Please provide your email address."; 
      } 
     } else { 
      echo "Please provide your name."; 
     } 

    } 
} 
?> 

Jetzt habe ich Bedingungen hinzugefügt, dass, wenn ein Feld leer ist, es wird eine Fehlermeldung zurück, das ist nur, weil die required in die Eingabefelder hinzugefügt kann umgangen werden, also ist es immer gut, auch Bedingungen zu haben.

Hinweis: Sie können hier auch Logik hinzufügen, wenn Sie jemals Formularanfragen usw. in Ihre Datenbank speichern wollten, z. B. von welcher IP-Adresse gesendet, wann gesendet wurde, von wem die Nachricht stammt.

Dies ist nur ein einfaches Beispiel, aber Sie werden sehen, was getan wurde, sobald Sie den Code gelesen haben.

+0

OP verwendet keine Klasse in seiner Frage, –

+0

Das OP muss nicht die Klasse verwenden, aber es ist die besser geübte Route. Die negative Stimme meiner Meinung nach nicht wert, um zu versuchen, das OP den richtigen Weg mit PHP zu führen. – Option

+0

Das DV nicht meins, ich dv Antworten nicht stattdessen ich füge hinzu, wenn es notwendig ist] –