Email senden Funktion

  • Hi Leute,

    ich bin Anfänger in der Gestaltung von Webseiten!
    Ich möchte eine Email über ein Kontaktformular (Name, Email, Telefon, Nachricht) an mich selber senden!
    In meiner HTML-Datei sieht das so aus:

    <form id="contact-form">
    <fieldset>
    <label><input type="text" value="Name" onFocus="if(this.value=='Name'){this.value=''}" onBlur="if(this.value==''){this.value='Name'}"> </label>
    <label><input type="text" value="Email" onFocus="if(this.value=='Email'){this.value=''}" onBlur="if(this.value==''){this.value='Email'}"> </label>
    <label><input type="text" value="Telefon" onFocus="if(this.value=='Phone'){this.value=''}" onBlur="if(this.value==''){this.value='Phone'}"> </label>
    <textarea onFocus="if(this.value=='Nachricht'){this.value=''}" onBlur="if(this.value==''){this.value='Message'}">Nachricht</textarea>
    <a href="#" class="button1" onClick="document.getElementById('contact-form').reset()">löschen</a>
    <a href="#" class="button1" onClick="document.getElementById('contact-form').submit()">senden</a>
    </fieldset>
    </form>


    Wie kann ich jetzt die Methode submit() definieren?
    Vielen Dank schon mal!

  • Hättest du dich informiert, was dein Quelltext macht, dann wüsstest du wie das zu implementieren hast.
    Entweder fügst du dem HTML Element direkt das onsubmit="javascript_function();" Attribut hinzu (sowie beim Focus Event),
    oder du schreibst dafür direkt JavaScript, und zwar so:
    document.getElementById("#contactForm").onSubmit = function() {
    // some js-code here
    }

    Allerdings kannst du sowas auch mit der jQuery Bibliothek deutlich einfacher und besser machen.
    Die Eventattribute sind nämlich seit HTML 5 veraltet und sollten eigentlich nicht mehr benutzt werde, oder?


    lg

  • Hast du denn für dein AJax-Formular auch die PHP-Datei zum annehmen der Ajax-Anfrage erstellt?
    Wie gut kennst du dich denn mit php aus, den ein Kontaktformular, egal ob Ajax oder konventionell muss ja serverseitig verarbeitet werden, das ist nicht so einfach wie man sich das oft vorstellt.

  • Tut mir Leid aber ich lade grundsätzlich nichts herunter.

    Ich würde auch nicht mit AJax ein Kontaktformular bereichern, das schliesst die Leute aus, die Javascript abgeschaltet haben.
    Ein Kontaktformular sollte so wenig Hürden wie möglich aufweisen. Oder würdest du klingeln wollen um in einen Laden zu kommen?

    Erstelle ein normales Kontakformular auf Basis HTML und CSS.
    Erstelle eine PHP-Datei um die Eingaben entgegenzunehmen und zu prüfen(Spam, Hacker und andere Lustige Leute will man ja nicht haben)

    Nimm zum versenden der E-Mail eine klasse wie https://github.com/PHPMailer/PHPMailer

    Um Felder unbedingt ausfüllen zu lassen gib den Feldern das Attribut required mit -->http://css-tricks.com/almanac/selectors/r/required/
    Um kein Spam zu erhalten google mal nach honeypot. Ein hidden Feld das nur für Bots da ist. Ist das Feld ausgefüllt Formular verwerfen, etc.

  • Danke für den Tipp!
    Ich hab das jetzt so gemacht:
    In meiner HTML Datei:
    <div id="contact">
    <form action="contact.php" method="post" id="quickcontact">
    <input type="text" name="name" placeholder="NAME" id="name" class="webform">
    <input type="text" name="mail" placeholder="EMAIL" id="phone" class="webform">
    <textarea name="text" placeholder="NACHRICHT" id="message" rows="4" class="webform"></textarea>
    <p><p>
    <input type ="submit" value"Versenden">
    </p></p>
    </form>
    </div>


    und in meiner php-datei:

    <?php
    $fehler = "";
    $name = $_POST['name'];
    $mail = $_POST['mail'];
    $text = $_POST['text'];
    if (empty($name)) {
    $fehler .= "<li>der Absendername fehlt</li>" ;
    }
    if (empty($mail)) {
    $fehler .= "<li>die Mailadresse fehlt</li>" ;
    }
    if (empty($text)) {
    $fehler .= "<li>keine Nachricht eingetragen</li>" ;
    }
    if (empty($fehler)) {
    if (get_magic_quotes_gpc()) {
    $text = stripslashes($text);
    }
    $return = chr(13).chr(10);
    $an = "meineEmailAdresse@gmx.de" ;
    $betreff = "Mein Kontaktformular" ;
    $von = "From: Kontaktformular <null@MeineHTML.de>" ;
    $datum = "Datum: ".date("j.n.Y").$return;
    $zeit = "Zeit: ".date("H:i").$return;
    $abs = "Von: ".$name." <".$mail.">".$return;
    $trennen = "-----------------------------------------------".$return;
    $nachricht = $datum.$zeit.$abs.$trennen.$text;
    mail($an,$betreff,$nachricht,$von);
    }
    ?>
    <html>
    <head>
    <title>Kontakt-Formular</title>
    </head>
    <body>
    <?php
    if (empty($fehler)) {
    $return = chr(13).chr(10);
    $nachricht = strip_tags($nachricht);
    $nachricht = htmlentities($nachricht);
    $nachricht = str_replace($return,"<br>",$nachricht);
    echo "<p>Ihre Nachricht wurde versendet.</p>" ;
    echo "<p>$nachricht</p>" ;
    } else {
    echo "<p>Ihre Nachricht wurde nicht gesendet, weil</p>" ;
    echo "<ul>$fehler</ul>" ;
    }
    ?>
    </body>
    </html>

    Wenn ich jetzt aber den senden Button drücke, kommt im Browser nur die PHP-Datei. Aber wieso? Also der Code wird angezeigt :(

    2 Mal editiert, zuletzt von Marco Schl (28. Januar 2014 um 08:08)

  • 2 Fragen:

    • Die Datei hat die Extension .php?
    • Du hast einen Webserver mit PHP?
  • Erstelle eine php(info)-Datei, lade diese auf den Server und führe sie dann aus dem Browser heraus aus. Werden dir dann viele viele Infos angezeigt, parst der Server PHP. Den Infos kannst du entnehmen welche PHP-Version auf dem Server läuft.

    Gegen Mods kommt man nicht an, die haben immer Recht. Sind scheinbar nicht kritikfähig.