Feedback gewünscht Kontaktformular mit php

  • Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Katexxx

Neues Mitglied
29 Oktober 2016
1
0
1
32
Hallo zusammen,

bin noch ein ziemlich Newbie neu was php angeht und benötige deshalb Hilfe.
Ich möchte ein Kontaktformular mit html in Verbindung mit php erstellen, bekomme aber die Nachrichten, die in das Formular eingegeben werden nicht per Mail zugeschickt. Woran liegt das? Kann den Fehler nicht entdecken und wäre froh über Feedback. Folgend mein aktueller Stand.

HTML:
HTML:
<section class="grid col-three-quarters mq2-col-two-thirds mq3-col-full">
      <h2>Schreiben Sie mir eine Nachricht.</h2>
    
    
      <form id="contact_form" class="contact_form" action="senden1.php" method="post" name="contact_form">
        <ul>
          <li>
            <label for="name">Name:</label>
            <input type="text" name="name" id="name" required class="required">
          </li>
          <li>
            <label for="email">E-Mail:</label>
            <input type="text" name="email" id="email" required placeholder="" class="required email">
          </li>
          <li>
            <label for="betreff">Betreff:</label>
            <input type="text" name="betreff" id="betreff" required class="required">
          </li>
          <li>
            <label for="nachricht">Nachricht:</label>
            <textarea name="nachricht" id="nachricht" cols="100" rows="6" required  class="required"></textarea>
          </li>
          <li>
            <button id="submit" type="submit" id="submit" name="submit" class="button fright">Senden</button>
          </li>
        </ul>
      </form>
      </section>

php:
PHP:
<!DOCTYPE html>
<html>

   <head>
   <title>Kontakt</title>
    </head>
  
    <body>
       <?php
           if($_POST['name']!="" and $_POST['email']!="" and $_POST['betreff']!="" and $_POST['message']!="") {
           $empf = "[EMAIL]meineadresse@gmx.de[/EMAIL]";
           $betreff = $_POST['betreff'];
           $from = "From: ";
           $from .= $_POST['name'];
           $from .= " <";
           $from .= $_POST['email'];
           $from .= "\n";
           $from .= "Reply-To: ";
           $from .= $_POST['[EMAIL]meineadresse@gmx.de[/EMAIL]'];  
           $from .= "\n";      
           $from .= "Content-Type: text/html";  
           $from .= $_POST['message'];
          
           mail($empf, $betreff, $text, $from);
           echo "Vielen Dank fuer Ihre Nachricht. <br/> <a href="Zur Website zurück.">kontakt.html</a>";
           } 
       ?>
     </body>
</html>


Danke für eure Hilfe!
 
Zuletzt bearbeitet von einem Moderator:

B3nnoX

Aktives Mitglied
9 Januar 2013
533
106
43
Was ich auf anhieb sehe ist folgendes
PHP:
$from .= $_POST['meineadresse@gmx.de'];

Das ist natürlich quatsch, weil du deine Adresse in der Variable $empf stehen hast.
Dann machst du auch nirgends eine zuweisung der Variable $text.
Du müsstest also noch irgendwo

PHP:
$text = $_POST['message'];
stehen haben.

Ansonsten kann ich dir auch nur raten die Klasse Phpmailer dafür zu verwenden.
Hier ein Link
Ansonsten einfach selbst Google benutzen.
 
A

Arne Drews

Guest
Grundsätzlich, wie B3nnoX schon sagte, solltest Du mail() nicht roh verwenden, dazu bedarf es ein wenig mehr Kenntnisse. Alternativen sind Mailerklassen, die beiden verbreitetsten und wie man die ganz einfach einbindet, findest Du hier:

PHPMailer
SwiftMailer

Ich empfehle eher den SwiftMailer, aber der PHPMailer ist auch allemal besser als mail() roh zu verwenden.

Zusätzlich sei noch erwähnt, dass Du niemals Usereingaben ungefiltert verwenden solltest!
 
  • Like
Reaktionen: felixprogram
Werbung: