Web Php Mail Funktion Fehler (JS,PHP,HTML)

Dieses Thema im Forum "Programmierung" wurde erstellt von Ohelert, 19. November 2014.

  1. Ohelert
    Offline

    Ohelert

    Registriert seit:
    2. Dezember 2013
    Beiträge:
    138
    Minecraft:
    Aurazara
    Guten tach zusammen :)

    Ich würde gerne die überprüfung, ob alle felder ausgefüllt sind, über html machen, um die nachricht anzuzeigen :)


    Email.js:
    http://pastebin.com/npAFimgv

    email.php
    http://pastebin.com/YrUyeFmE

    abschnitt aus index.html über mail Funktion:
    http://pastebin.com/FYMPDXhb

    das ganze Funktioniert nicht und gibt auf der website folgendes aus:
    [​IMG]

    Fehler Bitte füllen Sie alle Felder aus!
    findet man im html script ;)

    Heisst soviel wie das das script nicht erkennt das alle felder ausgefüllt sin, könnt das daran liegen, das ich die felder im email.js nochmals überprüfe?
    wäre euch sehr dankbar wenn ihr mir weiterhelfen könntet

    viiielen dank und freundliche grüsse Ohelert
     
    #1
  2. Malte
    Offline

    Malte Moderator Redakteur

    Registriert seit:
    17. März 2012
    Beiträge:
    474
    Ort:
    Schwammbaumwald
    Minecraft:
    Malte662
    Hast du zufällig bei den "contact-confirmation-container" ein zusätzlichen Container hinzugefügt? Denn wenn ich den JavaScript-Code richtig verstanden habe ruft er, wenn sowohl eine Email-Adresse und ein Betreff angegeben wurde den 3. (da bei 0 angefangen wird zu zählen steht im Code 2) "contact-confirmation-container" auf in dem bei dir der entsprechende Text steht, daher würde ich an deiner stelle einfach den obersten "contact-confirmation-container" entfernen und es dann nochmal probieren.
    Ansonsten währe es noch gut zu wissen ob die Nachricht den versendet wird, da der Fehler, wenn dies nicht der Fall ist, woanders liegen muss.

    PS: du überprüfst die Felder nur im Javascript-Skript nur passiert dieses ohne das die Seite neu geladen werden muss ;)
     
    #2
  3. Ohelert
    Offline

    Ohelert

    Registriert seit:
    2. Dezember 2013
    Beiträge:
    138
    Minecraft:
    Aurazara
    Die nachricht kommt nicht an :/ und die contact-confirmation container sind alle so wie sie sein sollten :3 (wenn s der contact-confirmation container wär könnt ich ja ohne grosses tam tam den text ändern :) aber leider wird die email ned verschikt, vermute der fehler ligt iwo im php oder bei den if abfragen im JS
     
    #3
  4. Ohelert
    Offline

    Ohelert

    Registriert seit:
    2. Dezember 2013
    Beiträge:
    138
    Minecraft:
    Aurazara
    hm hab den Oberen gelöscht, das mit php wurde mitlerweile gelöst, aber es stockt nun bei Senden.... :/ (p.s. php wurden die inputs falsch angegeben :3) Sprich wird dieser Teil:
    Code (Text):
    1. <div class="contact-confirmation-container">
    2.                         <div class="contact-confirmation">
    3.                             <div class="contact-confirmation-rectangle"></div>
    4.                             <div class="contact-confirmation-triangle"></div>
    5.                             <div class="contact-confirmation-text-d">SENDEN...</div>
    6.                         </div>
    7.                     </div>
    angezeigt stat Dieser

    Code (Text):
    1. <div class="contact-confirmation-container">
    2.                         <div class="contact-confirmation">
    3.                             <div class="contact-confirmation-rectangle"></div>
    4.                             <div class="contact-confirmation-triangle"></div>
    5.                             <div class="contact-confirmation-title-b">FEHLER</div>
    6.                             <div class="contact-confirmation-text-b">Bitte geben Sie eine gültige e-mail Adresse ein!</div>
    7.                         </div>
    8.                     </div>
    9.  
    Nachricht wird immernoch nicht versendet :/
     
    #4
  5. McApplex
    Offline

    McApplex

    Registriert seit:
    28. November 2014
    Beiträge:
    2
    Minecraft:
    McApplex
    So wie es aussieht ist dein PHP Code falsch.

    Dein Code:
    PHP:
    1. mail("martin.niklaus@gmx.ch" .$emailAdress, $emailMessage);
    Dort ist ein sehr einfacher Schreibfehler. Du hast vor $emailAdress einen Punkt gemacht, somit schickt er wenn ich die Email "test@test.com" angebe, die Email an "martin.niklaus@gmx.chtest@test.com"

    Hier der richtige Code:
    PHP:
    1. mail("martin.niklaus@gmx.ch", $emailAdress, $emailMessage);
    Liebe Grüße :)
     
    #5
  6. Ohelert
    Offline

    Ohelert

    Registriert seit:
    2. Dezember 2013
    Beiträge:
    138
    Minecraft:
    Aurazara
    Sollte so gehen ?
    Code (Text):
    1. <?php
    2. if(isset($_POST['emailAdress']) && isset($_POST['emailSubject']) && isset($_POST['emailMessage']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
    3.     $emailAdress = $_POST['email-address'];
    4.     $emailSubject = $_POST['email-subject'];
    5.     $emailMessage = $_POST['email-message'];
    6.  
    7. //send email
    8.     mail("martin.niklaus@gmx.ch", email-address, email-message);
    9. }?>
    10.  
    bei

    mail("martin.niklaus@gmx.ch", email-address, email-message);

    ist email-adress, email-message richtig ? oder brauchts -> $email-adress
     
    #6
  7. McApplex
    Offline

    McApplex

    Registriert seit:
    28. November 2014
    Beiträge:
    2
    Minecraft:
    McApplex
    Der Code den du angegeben hast ist falsch, er weiß nicht woher er email-adress & email-message nehmen soll. Hier der richtige Code:

    PHP:
    1. <?php
    2. if(isset($_POST['emailAdress']) && isset($_POST['emailSubject']) && isset($_POST['emailMessage']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
    3.  
    4.     // Variablen
    5.     $emailAdress = $_POST['email-adress'];
    6.     $emailSubject = $_POST['email-subject'];
    7.     $emailMessage = $_POST['email-message'];
    8.  
    9.     // Funktionen
    10.     mail("martin.niklaus@gmx.ch", $emailAdress, $emailMessage);
    11.  
    12. } ?>
    Du kannst statt:
    PHP:
    1. mail("martin.niklaus@gmx.ch", $emailAdress, $emailMessage);
    auch folgendes nutzen:
    PHP:
    1. mail("martin.niklaus@gmx.ch", $_POST['email-adress'], $_POST['email-message']);
    Ich hoffe es funktioniert!

    Liebe Grüße! :)

    // Update: Ich habe den 1. Code geupdatet, da ich ein Leerzeichen vergessen hab! ^^
     
    #7
  8. SeriousAndCool
    Offline

    SeriousAndCool

    Registriert seit:
    29. November 2014
    Beiträge:
    1
    Der Code von McApplex dürfte denke ich auch nicht funktionieren, da hier immer das falsche Feld auf "isset" geprüft wurde. Dein beschriebenes Problem liegt hier aber nicht im PHP-Code. Jedoch wird deine E-Mail auch wegen dem PHP-Code am Ende nicht abgeschickt.

    Wenn ich jetzt mal davon ausgehe, dass die Funktion "showContactConfirmationContainer(i)" immer den Container mit dem Index i aufruft, dann wäre "Please enter a valid email address!" die 0, "Bitte geben Sie eine gültige e-mail Adresse ein!" die 1... undso weiter. Dann müsstest du theoretisch (ich kenne den Code nicht) statt dem hier:

    PHP:
    1. setTimeout("showContactConfirmationContainer(2)",200); // ...
    2. setTimeout("send('"+datastr+"')",2000);
    Das hier schreiben:
    PHP:
    1. setTimeout("showContactConfirmationContainer(3)",200); // ...
    2. setTimeout("send('"+datastr+"')",2000);
    Da "SENDEN..." wahrscheinlich den Index 3 hat. Jetzt wird eventuell das richtige angezeigt, jedoch wird die E-Mail immernoch nicht versendet, da dein Post dann theoretisch so aussieht:
    • email-address = DIE EMAIL
    • email-subject = DER BETREFF
    • email-message = DIE NACHRICHT
    So jetzt checkst du in deinem PHP Code erstmal so, ob all diese Formulardaten abgesendet wurden und ob die E-Mail gültig ist:

    PHP:
    1. if(isset($_POST['emailAdress']) && isset($_POST['emailSubject']) && isset($_POST['emailMessage']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
    Jedoch existiert hier (wie man oben in den Formulardaten sehen kann) kein emailAdress, sondern nur email-address und dasselbe auch bei den anderen Feldern. Am Ende checkst du $_POST['email'].. email ist hier aber nicht drinnen, sondern wie bereits gesagt nur email-address.

    PHP:
    1. $emailAdress = $_POST['emailAdress'];
    2. $emailSubject = $_POST['$emailSubject'];
    3. $emailMessage = $_POST['$emailMessage'];
    Soziemlich dasselbe wieder hier. Bei den letzten zwei jedoch noch der zusätzliche Fehler, dass am Anfang das Dollar-Zeichen weg müsste.

    Hoffe ich konnte dir einigermaßen helfen
    Sven
     
    #8