2016-08-10 4 views
0

Ich habe versucht, dieses Kontaktformular funktionieren zu lassen, konnte aber keine E-Mails empfangen. Alles sieht gut für mich aus. Ich verwende eine HTML-Vorlage und versuche, sie mit meinen begrenzten Programmierkenntnissen anzupassen. Jede Hilfe wird geschätzt.Ich kann keine E-Mails vom HTML-Kontaktformular empfangen

Hier ist mein HTML-Code:

<form class="form-horizontal" id="contactForm" action="contact.php" method="post"> 
         <!-- Notifications --> 
         <p class="success cf text-center"><i class="fa fa-check"></i> <strong>Mesajınız Gönderilmiştir.</strong></p> 
         <p class="failed cf text-center"><i class="fa fa-exclamation-circle"></i><strong> Bir hata Oluştu! Lütfen Tekrar Deneyiniz.</strong></p> 

         <div class="form-group w-50"> 
          <input type="text" class="form-control" id="cfName" placeholder="İsim" required=""> 
          <input type="email" class="form-control" id="cfEmail" placeholder="E-Mail" required=""> 
         </div> 
         <div class="form-group"> 
          <input type="text" class="form-control" id="cfSubject" placeholder="Başlık" required=""> 
         </div> 
         <div class="form-group"> 
          <textarea id="cfMessage" rows="5" class="form-control" placeholder="Mesajınız..." required=""></textarea> 
         </div> 
         <div class="form-group m-b-0"> 
          <button type="submit" class="btn btn-shadow btn-green" style="border-radius: 4px; font-size: 15px; box-shadow: rgb(72, 125, 101) 0px 0px 0px 0px; border: 3px solid rgb(219, 141, 23); background-color: rgb(219, 141, 23);">Gönder</button> 
         </div> 
        </form> 

und das ist mein PHP-Code:

<?php 
 
// Variables 
 
$name = trim($_POST['name']); 
 
$email = trim($_POST['email']); 
 
$subject = trim($_POST['subject']); 
 
$message = trim($_POST['message']); 
 

 
// Email address validation - works with php 5.2+ 
 
function is_email_valid($email) { 
 
\t return filter_var($email, FILTER_VALIDATE_EMAIL); 
 
} 
 

 

 
if(isset($name) && isset($email) && isset($message) && isset($subject) && is_email_valid($email)) { 
 

 
\t // Avoid Email Injection and Mail Form Script Hijacking 
 
\t $pattern = "/(content-type|bcc:|cc:|to:)/i"; 
 
\t if(preg_match($pattern, $name) || preg_match($pattern, $email) || preg_match($pattern, $message) || preg_match($pattern, $subject)) { 
 
\t \t exit; 
 
\t } 
 

 
\t // Email will be send 
 
\t $to = "[email protected]"; // Change with your email address 
 
\t 
 

 
\t // HTML Elements for Email Body 
 
\t $body = <<<EOD 
 
\t <strong>Name:</strong> $name <br> 
 
\t <strong>Email:</strong> <a href="mailto:$email?subject=feedback" "email me">$email</a> <br> <br> 
 
\t <strong>Message:</strong> $message <br> 
 
EOD; 
 
//Must end on first column 
 
\t 
 
\t $headers = "From: $name <$email>\r\n"; 
 
\t $headers .= 'MIME-Version: 1.0' . "\r\n"; 
 
\t $headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n"; 
 

 
\t // PHP email sender 
 
\t mail($to, $subject, $body, $headers); 
 
} 
 

 

 
?>

Dank.

+0

Führen Sie dies auf localhost? Wenn ja, verwenden Sie xamp oder etwas? – Randy

+0

geben Sie den Textfeldern Namen statt IDs - das POST-Array verwendet den Namen des Elements - nicht ID. – RamRaider

+0

Haben Sie einen var_dump für Ihre Variablen ausgeführt, die Sie an die Mail übergeben, um sicherzustellen, dass sie gesetzt werden? Ihre Eingabefelder verwenden nicht das ** name ** -Attribut, so dass diese wahrscheinlich nicht richtig eingestellt sind. – RemanBroder

Antwort

0

versuchen, die Form wie diese, mit dem Attributnamen zu, dass in dem POST-Array erwartet gesetzt

<form class="form-horizontal" id="contactForm" action="contact.php" method="post"> 
    <!-- Notifications --> 
    <p class="success cf text-center"><i class="fa fa-check"></i> <strong>Mesajınız Gönderilmiştir.</strong></p> 
    <p class="failed cf text-center"><i class="fa fa-exclamation-circle"></i><strong> Bir hata Oluştu! Lütfen Tekrar Deneyiniz.</strong></p> 

    <div class="form-group w-50"> 
     <input name='name' type="text" class="form-control" id="cfName" placeholder="İsim" required=""> 
     <input name='email' type="email" class="form-control" id="cfEmail" placeholder="E-Mail" required=""> 
    </div> 
    <div class="form-group"> 
     <input name='subject' type="text" class="form-control" id="cfSubject" placeholder="Başlık" required=""> 
    </div> 
    <div class="form-group"> 
     <textarea name='message' id="cfMessage" rows="5" class="form-control" placeholder="Mesajınız..." required=""></textarea> 
    </div> 
    <div class="form-group m-b-0"> 
     <button type="submit" class="btn btn-shadow btn-green" style="border-radius: 4px; font-size: 15px; box-shadow: rgb(72, 125, 101) 0px 0px 0px 0px; border: 3px solid rgb(219, 141, 23); background-color: rgb(219, 141, 23);">Gönder</button> 
    </div> 
</form> 
+0

Danke. Ich habe Namensschilder verwendet, wie Sie es vorgeschlagen haben, aber es passiert immer noch nichts. –

0

Sie einen Namen

<form class="form-horizontal" id="contactForm" action="contact.php" method="post"> 
<!-- Notifications --> 
<p class="success cf text-center"><i class="fa fa-check"></i> <strong>Mesajınız Gönderilmiştir.</strong></p> 
<p class="failed cf text-center"><i class="fa fa-exclamation-circle"></i><strong> Bir hata Oluştu! Lütfen Tekrar Deneyiniz.</strong></p> 
<div class="form-group w-50"> 
<input type="text" class="form-control" name="name" id="cfName" placeholder="İsim" required=""> 
<input type="email" class="form-control" name="email" id="cfEmail" placeholder="E-Mail" required=""> 
</div> 
<div class="form-group"> 
<input type="text" class="form-control" name="subject" id="cfSubject" placeholder="Başlık" required=""> 
</div> 
<div class="form-group"> 
<textarea id="cfMessage" name="message" rows="5" class="form-control" placeholder="Mesajınız..." required=""></textarea> 
</div> 
<div class="form-group m-b-0"> 
<button type="submit" class="btn btn-shadow btn-green" style="border-radius: 4px; font-size: 15px; box-shadow: rgb(72, 125, 101) 0px 0px 0px 0px; border: 3px solid rgb(219, 141, 23); background-color: rgb(219, 141, 23);">Gönder</button> 

+0

Danke. Ich habe Namensschilder verwendet, wie Sie es vorgeschlagen haben, aber es passiert immer noch nichts. –

0

Sie für jedes Feld versäumter fehlender Eingabetyp Feldname, warum Sie keine Daten zur nächsten Seite "contact.php" übergeben können

<form class="form-horizontal" id="contactForm" action="contact.php" method="post"> 
<!-- Notifications --> 
<p class="success cf text-center"><i class="fa fa-check"></i> <strong>Mesajınız Gönderilmiştir.</strong></p> 
<p class="failed cf text-center"><i class="fa fa-exclamation-circle"></i><strong> Bir hata Oluştu! Lütfen Tekrar Deneyiniz.</strong></p> 

<div class="form-group w-50"> 
    <label>Username*</label> 
    <input type="text" name="name" class="form-control" id="cfName" placeholder="Username" required=""> 
</div> 
<div class="form-group w-50"> 
    <label>Email*</label> 
    <input type="email" name="email" class="form-control" id="cfEmail" placeholder="E-Mail" required=""> 
</div> 
<div class="form-group"> 
    <label>Subject*</label> 
    <input type="text" name="subject" class="form-control" id="cfSubject" placeholder="Subject" required=""> 
</div> 
<div class="form-group"> 
    <label>Message*</label> 
    <textarea id="cfMessage" name="message" rows="5" class="form-control" placeholder="Message..." required=""></textarea> 
</div> 
<div class="form-group m-b-0"> 
    <button type="submit" class="btn btn-shadow btn-green" style="border-radius: 4px; font-size: 15px; box-shadow: rgb(72, 125, 101) 0px 0px 0px 0px; border: 3px solid rgb(219, 141, 23); background-color: rgb(219, 141, 23);">Gönder</button> 
</div> 
</form> 
Verwandte Themen