1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Javascript Email Versenden Frage

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


  1. Ohelert
    Offline

    Ohelert

    Registriert seit:
    2. Dezember 2013
    Beiträge:
    131
    Geschlecht:
    männlich
    Minecraft:
    Aurazara
    Hallo Liebe Programierer Comunity.
    Ich habe ein Problem mit einer E-Mail Kontakt Box:
    Code (Text):
    1. var sendEmailDiv = document.getElementById("send-email");
    2.  
    3. initContactButton();
    4.  
    5. function initContactButton()
    6. {
    7.     if (deviceName == "computer")
    8.     {
    9.         sendEmailDiv.onclick = function() {sendEmail()};
    10.     }
    11.     else //using touchstart to replace onclick on mobile device since touchevents are used
    12.     {
    13.         sendEmailDiv.addEventListener("touchstart", sendEmail, false);
    14.     }
    15. }
    16.  
    17. function sendEmail()
    18. {
    19.         hideContactConfirmationContainer(); //function from main.js
    20.         positionContactConfirmationContainer(); //function from main.js
    21.                                    
    22.         var isSubjectFilled;
    23.         var isMessageFilled;
    24.                                  
    25.         var emailAddress = $("#email-address").val();
    26.         var emailSubject = $("#email-subject").val();
    27.         var emailMessage = $("#email-message").val();
    28.  
    29.         if (!emailAddress.match(/^([a-z0-9._-][email protected][a-z0-9._-]+\.[a-z]{2,4}$)/i))
    30.         {
    31.             focusEmail(); //function from main.js
    32.             setTimeout("showContactConfirmationContainer(0)",200); //function from main.js, setTimeout for ie since its focus is late
    33.         }
    34.         else
    35.         {
    36.             if (emailMessage.length < 1)
    37.             {
    38.                 isMessageFilled = false;
    39.                 focusMessage(); //function from main.js
    40.             }
    41.            
    42.             if (emailMessage.length >= 1)
    43.             {
    44.                 isMessageFilled = true;
    45.             }
    46.            
    47.             if (emailSubject.length < 1)
    48.             {
    49.                 isSubjectFilled = false;
    50.                 focusSubject(); //function from main.js
    51.             }
    52.            
    53.             if (emailSubject.length >= 1)
    54.             {
    55.                 isSubjectFilled = true;
    56.             }
    57.        
    58.             if ((isSubjectFilled == true) && (isMessageFilled == true))
    59.             {
    60.                 var datastr ='email-address=' + emailAddress + '&email-subject=' + emailSubject + '&email-message=' + emailMessage;
    61.            
    62.                 setTimeout("showContactConfirmationContainer(2)",200); //function from main.js, setTimeout for ie since its focus is late
    63.            
    64.                 setTimeout("send('"+datastr+"')",2000);
    65.             }
    66.             else
    67.             {
    68.                 setTimeout("showContactConfirmationContainer(1)",200); //function from main.js, setTimeout for ie since its focus is late
    69.             }
    70.         }
    71.        
    72.         return false;
    73. }
    74.  
    75. function send(datastr){
    76.     $.ajax({  
    77.         type: "POST",
    78.         url: "email.php",
    79.         data: datastr,
    80.         cache: false,
    81.         success: function(html){
    82.        
    83.         hideContactConfirmationContainer(); //function from main.js
    84.         positionContactConfirmationContainer(); //function from main.js
    85.         setTimeout("showContactConfirmationContainer(4)",200); //function from main.js, setTimeout for ie since its focus is late
    86.        
    87.         clearAllInputField(); //function from main.js
    88.     }
    89.     });
    90. }
    Meine Frage dabei ist nun, an welche Mailadresse Schikt es das ? bzw wo kann man die ändern :)

    vielen Dank und Liebe Grüsse Ohelert
     
  2. Malte
    Offline

    Malte Ehem. Teammitglied

    Registriert seit:
    17. März 2012
    Beiträge:
    514
    Geschlecht:
    männlich
    Minecraft:
    Lergin_
    Wenn ich das ganze richtig verstehe wird die E-Mail nicht mit JavaScript selbst versendet, sondern die Informationen über die E-Mail mithilfe von Ajax an ein Php-Script (email.php) übergeben, welches die E-Mail dann versendet. Die E-Mail-Adresse an die die Email gesendet wird solltest du also in der entsprechenden PHP Datei finden (sollte im selben Ordner wie die Datei mit der Kontaktbox liegen und email.php heißen).
     
    Zuletzt bearbeitet: 5. November 2014
  3. Drago
    Offline

    Drago

    Registriert seit:
    2. April 2013
    Beiträge:
    82
    Ja genau so müsste das sein, allerdings ist es dann doch sinnvoller das ganze nur über php zu machen, denn alles was das script bewirkt kann man über HTML5 machen bzw. dann mit javascript. HTML5 unterstützt die Erkennung von Zeichen in input's. Um zu überprüfen, ob eine Email Adresse angegeben wurde müsstest du nur dem input type="email" zuweisen, desweiteren noch required="" um es zu einem Pflicht Pfeld zu machen, alles andere Übernimmt PhP, wie du das machst findet man sicherlich im Internet.
     
  4. Ohelert
    Offline

    Ohelert

    Registriert seit:
    2. Dezember 2013
    Beiträge:
    131
    Geschlecht:
    männlich
    Minecraft:
    Aurazara
    vielen dank :) werd mich mal dransetzen und so nen Php code machen... könnt euch ja schon mal auf weitere fragen gefasst machen :3 :D
     
    Zuletzt bearbeitet: 6. November 2014
  5. Ohelert
    Offline

    Ohelert

    Registriert seit:
    2. Dezember 2013
    Beiträge:
    131
    Geschlecht:
    männlich
    Minecraft:
    Aurazara
    und das wär meine lösung:
    Code (Text):
    1. <?php
    2. if($_POST){
    3.     $emailAdress = $_POST['name'];
    4.     $emailSubject = $_POST['email'];
    5.     $emailMessage = $_POST['text'];
    6.  
    7. //send email
    8.     mail(„[email protected]", "51 Deep comment from" .$email, $message);
    9. }
    10. ?>
    was haltet ihr davon ?
    sollte eigentlich funktionieren oder ?
     
  6. Drago
    Offline

    Drago

    Registriert seit:
    2. April 2013
    Beiträge:
    82
    Ich würde sagen du musst

    PHP:
    1. if(isset($_POST["email"]))
    schreiben.
     
  7. Malte
    Offline

    Malte Ehem. Teammitglied

    Registriert seit:
    17. März 2012
    Beiträge:
    514
    Geschlecht:
    männlich
    Minecraft:
    Lergin_
    So, wenn das der gesamte Code ist, benutzt du die Variablen $email und $message obwohl diese nicht vorhanden sind. Du müsstest stattdessen die Variablen $emailAdress und $emailMessage (vorausgesetzt das ist das was du da eintragen willst) nutzen.
    Wenn du den Javascript-Code von oben nutzt um die Daten an das PHP-Script zu übergeben müsstest du anstatt von "$_POST['name']" "$_POST['emailAdress']" nutzen, da die Daten sonst nicht in dem PHP-Script ankommen. Außerdem nutzt du bei der Email-Adresse in der Mail-Funktion am Anfang ein Anführungszeichen („) welches so nicht funktioniert, stattdessen müsstest du " nutzen.

    Dies ist nicht zwingend notwendig, da du mit der aktuelle Variante zwar nur überprüfst ob überhaupt etwas via POST übergeben wurde, dieses aber theoretisch reicht (man könnte es auch ganz weg lassen, allerdings währen die Variablen dann ungenutzt).
    Allerdings empfiehlt es sich dennoch zu überprüfen ob die Variablen, die benötigt werden auch alle Vorhanden sind:
    PHP:
    1. if(isset($_POST['name']) && isset($_POST['email']) && isset($_POST['text'])){
    Ansonsten würde ich dir einfach noch empfehlen zu überprüfen ob auch wirklich eine E-Mail Adresse angegeben wurde (gibt true oder false zurück):
    PHP:
    1. filter_var($emailAdress, FILTER_VALIDATE_EMAIL)
    Den gesamten Code würde ich also wie folgt aufbauen (es fehlt noch die Verwendung von dem Titel der Email ($emailSubject)):

    PHP:
    1. <?php
    2. if(isset($_POST['emailAdress']) && isset($_POST['emailSubject']) && isset($_POST['emailMessage']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)){
    3.     $emailAdress = $_POST['emailAdress'];
    4.     $emailSubject = $_POST['$emailSubject'];
    5.     $emailMessage = $_POST['$emailMessage'];
    6.  
    7. //send email
    8.     mail("[email protected]",51 Deep comment from" .$emailAdress, $emailMessage);
    9. }?>
    10.  
     
    • Gefällt mir Gefällt mir x 1
  8. Drago
    Offline

    Drago

    Registriert seit:
    2. April 2013
    Beiträge:
    82
    Das ganze habe ich schon Beschrieben und hätte es via HTML gemacht:

     
    • Gefällt mir Gefällt mir x 1