MyBB.de Forum

Normale Version: Hilfe für einen Form-Mailer aus einem html5 Formular
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi Leute,


ich versuche gerade einen Form Mailer zu erstellen, komme aber nicht weiter.

Das Formular sieht wie folgt aus:

Code:
<!-- Form Start -->
                        <form role="form" name="contactform" action="process.php">
                            <div class="form-group col-sm-4" id="name-group">
                                <input type="text" class="form-control" id="inputName" name="inputName" placeholder="Name">
                            </div>
                            <div class="form-group col-sm-4" id="email-group">
                                <input type="email" class="form-control" id="inputEmail" name="inputEmail" placeholder="E-Mail">
                            </div>
                            <div class="form-group col-sm-4" id="subject-group">
                                <input type="text" class="form-control" id="inputSubject" name="inputSubject" placeholder="Betreff">
                            </div>
                            <div class="form-group col-sm-12" id="message-group">
                                <textarea class="form-control" id="inputMessage" name="inputMessage" rows="6" placeholder="Nachricht"></textarea>
                            </div>
                            <button type="submit" class="btn btn-primary btn-lg">ABSENDEN</button>
                        </form>
                        <!-- Form End -->

die contact.php hat bisher nur folgenden Inhalt:


PHP-Code:
<?php
/* === Daten aus dem Formular auslesen und in Variablen speichern === */
      $vorname = $_POST['inputName'];
      $nachname = $_POST['nachname'];
      $email = $_POST['inputEmail'];
      $betreff = $_POST['inputSubject'];
      $nachricht = $_POST['inputMessage'];
     
      $name 
= $vorname.' '.$nachname;
     
    
/* === Empfängeradresse und Betreff === */
      $an = 'kontakt@mail.de'; //Hier Ihre E-Mail-Adresse eintragen
      $betreff = "Kontaktformularnachricht | $betreff $name ";
     
    
/* === Wenn Bedingung erfüllt, dann E-Mail abschicken - andernfalls Fehlermeldung ausgeben === */
        if ((!empty($name))&&(!empty($email))&&(!empty($betreff))&&(!empty($nachricht))) {
     
          mail
($an, $betreff, $nachricht, 'From:' . $email); //Mail versenden
     
          echo 
'Ihre Kontaktnachricht wurde zugestellt. Sie werden bald möglichst eine Antwort erhalten.';
        }
        else {
          echo 'Sie müssen alle Felder ausfüllen. <a href="index.html">Zurück</a>';
        }
?>
{"success":false,"errors":{"name":"Name ist ein Pflichtfeld.","email":"E-Mail ist ein Pflichtfeld.","subject":"Betreff ist ein Pflichtfeld.","message":"Nachricht ist ein Pflichtfeld."}} 


habs nun geschafft dass, das Formular abgeschickt wird und auch ankommt,

allerdings bleibt das Formular unverändert da stehen, also keine Meldung dass erfolgreich versendet oder eine Meldung wenn ich ein Feld leer lasse.


Danke für eure Hilfe
Davon abgesehen, dass das Formular so unsicher ist (https://de.wikipedia.org/wiki/E-Mail-Injection), lässt sich deine Frage so nicht beantworten.
Die Zeile mit dem JSON-Code irritiert mich und auch ist völlig unklar wie der Code aufrufen und verwendet wird. Auch ist im Formular von process.php die Rede, die Datei heißt aber contact.php.
mhh okay, daran hab ich nicht gedacht.

gibt es denn eine "sichere" Möglichkeit das Formular zu versenden ?
evtl mit hinzufügen eines captcha ?

Code:
<!-- Form Start -->
                        <form role="form" name="contactform" action="process.php">
                            <div class="form-group col-sm-4" id="name-group">
                                <input type="text" class="form-control" id="inputName" name="inputName" placeholder="Name">
                            </div>
                            <div class="form-group col-sm-4" id="email-group">
                                <input type="email" class="form-control" id="inputEmail" name="inputEmail" placeholder="E-Mail">
                            </div>
                            <div class="form-group col-sm-4" id="subject-group">
                                <input type="text" class="form-control" id="inputSubject" name="inputSubject" placeholder="Betreff">
                            </div>
                            <div class="form-group col-sm-12" id="message-group">
                                <textarea class="form-control" id="inputMessage" name="inputMessage" rows="6" placeholder="Nachricht"></textarea>
                            </div>
                            <button type="submit" class="btn btn-primary btn-lg">ABSENDEN</button>
                        </form>
                        <!-- Form End -->
Ich gehe mal davon aus, dass Stefan mit "unsicher" meint, dass Du die Eingaben des Formulars einfach ungeprüft übernimmst....