Kontaktformular absenden - Probleme

  • Hallo!


    Ich bin ein bekennender HTML/PHP-Anfänger, aber bereit zu Lernen. Deswegen sitze ich zur Zeit an einer Website, die auch eigentlich fertig ist und jetzt gerade am Kontaktformular zu scheitern droht.


    Ich habe ein Tutorial befolgt - dieses hier: https://www.youtube.com/watch?v=DZ7aojHQrjc -
    und alles so gemacht, wie vorgeschrieben (bis auf den Punkt, dass ich Name und Vorname in eins zusammengefasst und noch eine Checkbox hinzugefügt habe)


    Es soll 3 Pflichtfelder geben. Es funktioniert auch alles bis zum ersten Pflichtfeld. Sobald ich dann ein zweites hinzufügen möchte, funktioniert das nicht und dazu auch nicht mehr das erste.
    Ich habe trotzdem weiter gemacht, in der Hoffnung, dass sich am Ende alles auflöst, aber das war nicht der Fall. Und jetzt bin ich ratlos.


    Hat jemand eine Idee, woran es liegen könnte? Übersehe ich etwas?
    Ich wäre euch so dankbar, wenn ihr mir helfen könntet!


    HTML
    1. <form id="frmKontakt" class="form-horizontal" action="" method="post"> <fieldset> <div class="form-group" id="frmGroupName"> <span class="col-md-1 col-md-offset-2 text-center"></span> <div class="col-md-8"> <label for="name" class="control-label"></label> <input type="text" class="form-control" id="name" placeholder="Name, Vorname*" required> </div> </div> <div class="form-group" id="frmGroupEmail"> <span class="col-md-1 col-md-offset-2 text-center"></span> <div class="col-md-8"> <label for="email" class="control-label"></label> <input type="text" class="form-control" id="email" placeholder="E-Mail*" required> </div> </div> <div class="form-group" id="frmGroupTelefon"> <span class="col-md-1 col-md-offset-2 text-center"></span> <div class="col-md-8"> <label for="telefon" class="control-label"></label> <input type="text" class="form-control" id="telefon" placeholder="Telefon*" required> </div> </div> <div class="form-group" id="frmGroupNachricht"> <span class="col-md-1 col-md-offset-2 text-center"></span> <div class="col-md-8"> <label for="nachricht" class="control-label"></label> <textarea id="nachricht" class="form-control" placeholder="Ihre Nachricht an uns (optional)"></textarea> </div> </div> <div class="form-group" id="frmGroupCheckbox"> <span class="col-md-1 col-md-offset-2 text-center"></span> <div class="col-md-8" id="interesse" align="center"> <input type="checkbox" name="checkbox">&nbsp;Ich interessiere mich für die Geschäftsmöglichkeit </div> </div> <div class="form-group"> <div class="text-center"> <button type="submit" id="button" class="btn btn-primary btn-lg">Bitte informieren Sie mich kostenlos</button> </div> </div> </fieldset> </form> <script> $('#frmKontakt').submit(function() { var formControl = true; var frmGroupName = $('#frmGroupName'); var frmGoupEmail = $('#frmGroupEmail'); var frmGroupTelefon = $('#frmGroupTelefon'); var frmGroupNachricht = $('#frmGroupNachricht'); frmGroupName.removeClass('has-error'); frmGroupEmail.removeClass('has-error'); frmGroupTelefon.removeClass('has-error'); var name = $('#name').val(); var email = $('#email').val(); var telefon = $('#telefon').val(); var nachricht = $('#nachricht').val(); if(name == '') { formControl = false; frmGroupName.addClass('has-error'); } if(email == '') { formControl = false; frmGroupEmail.addClass('has-error'); } if(telefon == '') { formControl = false; frmGroupTelefon.addClass('has-error'); } if(frmControl) { &.ajax ({ type : 'POST', url : 'php/absenden.php', data: { name:name, email:email, telefon:telefon, nachricht:nachricht } }).done(function(message) { alert(message); }); } return false; }); </script>


    PHP
    1. <?php $name = $_POST['name']; $telefon = $_POST['telefon']; $email = $_POST['email']; $nachricht = $_POST['nachricht']; $empfaenger = "EMAILADRESSE@live.de"; $absendername = "Kontaktformular"; $absendermail = $email; $betreff = "Neue Nachricht über Kontaktformular"; $text = "Es ist eine neue Nachricht über das Kontaktformular eingetroffen. Folgende Daten wurden übermittelt: Name, Vorname: " .$name. " Email: " .$email. " Telefon: " .$telefon. " Nachricht: " .$nachricht. " "; mail($empfaenger, $betreff, $text, "From: $absendername <$absendermail>"); echo('Vielen Dank! Wir melden uns schnellsmöglichst bei Ihnen.'); ?>


  • nen schönen spambot wirste dann gebaut haben. das is der grund, wieso echte seminare etwas kosten und wieso so viel scheisse im www zu finden ist.
    wenn man ein formular validiert, dann IMMER serverseitig, so kann dir jeder jeden x-beliebigen scheiss da reinbumsen und faxen machen.
    und wenn du dein formular schon per ajax abschieben willst, dann schiebs auf die formular-seite und lass es serverseitig validieren und dann hauste die antwort per ajax auch in deine aktuelle seite rein.


    ich mach mir jetzt nicht die mühe zu gucken, wieso du dort fehler hast weils so keinen sinn macht.


    pack die wirkliche validierung in deine absenden.php und mach se mit php.


    am einfachsten nen array definieren, wo du die namen der zu validierenden felder drin hast


    $myvali = array('name','email','sonstwasauchimmer')


    dann machste nen foreach($myvali as $key => $value){...} und prüfst, ob du dort den $value in post als key hast (isset($_POST[$value]) && !empty($_POST[$value])), wenn ja wert auf die entsprechende vali checken und wenn nich dann die fehler ausgeben :)