Kontaktformular einrichten

  • Hallo zusammen,

    nach langer Abstinenz (2007) hat es mich nun wieder hierher verschlagen :)

    Habe mir ein Homepage Template runtergeladen und bin gerade dabei das nach meinen Bedürfnissen anzupassen.
    Allerdings habe ich bisher noch keine Erfahrung mit CSS und PHP (nur HTML).
    Jetzt mein Problem. In diesem Template ist ein Kontaktformular vorbereitet, welches aber noch nicht funktioniert.

    Ich bekomme es zwar hin, dass beim Absenden der Nachricht Outlook etc. sich öffnet, aber das will ich nicht.
    Ich würde gerne die Nachricht ohne externes Programm verschicken lassen. Ich hoffe ihr könnt mir folgen :)

    Vielen Dank im Voraus für eure Hilfe!

  • Ohne deine Frage lautet wie?

    Code
    action="mailto:test@test.de"


    Dort muss das Script rein, welches die Daten verarbeiten und versenden soll. Wie man das mit PHP macht, findest du in massenhaft Tutorials im Netz und auch mit Hilfe der Forensuche sollte man einige Beispiele finden können.

  • Habe mir jetzt einige Beiträge durchgelesen und werde daraus nicht schlau. Wie gesagt, mit PHP kenne ich mich nicht aus.
    Das "Gerüst" in der kontakt.html Datei steht. Nun brauche ich ja wohl noch eine entsprechende kontakt.php Datei.

    Und genau daran scheitert das Ganze leider.

  • Habe mir jetzt einige Beiträge durchgelesen und werde daraus nicht schlau. Wie gesagt, mit PHP kenne ich mich nicht aus.

    Ohne serverseitige Sprache, wie PHP wirst du das nicht umgesetzt bekommen. Entweder du suchst dir jemanden der dir das macht oder du lernst PHP, was aber einiges an Zeit beanspruchen dürfte. Selbst wenn du ein Script findest, das einigermassen aktuell ist und die gewünschte Funktionalität mitbringt, gibt es immer noch reichlich Einstellungen und Anpassungen vorzunehmen, die meist das Anfängerniveau übersteigen.

  • Danke für deine Antwort.
    Also habe ich es richtig verstanden, es gibt zum bereits in HTML angelegten Formular keinen "einfachen" php Code der das zum laufen bringt??

    Einmal editiert, zuletzt von Poncho (20. April 2013 um 19:32)

  • Laufen kann ein HTML-Formular bereits von selbst - nämlich nur für die pure Anzeige im Browser. Um die Formulardaten zu verarbeiten gibt es im Netz viele PHP-Quellcodes die man als Vorlage nutzen kann. Du musst dir aber bei jedem Quellcode bewusst sein, ob er auch sicher ist und das macht was Du gerne möchtest. PHP-Kenntnisse sind dafür überaus von Vorteil.

  • Auch dir danke für die Antwort.
    So wie du es beschrieben hast, ist es mir bewusst.
    Hänge aber eigentlich "nur" an der auführenden Stelle (also der PHP Datei).
    Hatte nur gehofft, dass es evtl. eine passende PHP Vorlage gibt, die ich so übernehmen kann.

  • Du solltest erst garnicht anfangen, die mail-Funktion von PHP zu nutzen. Sieh' dir lieber eine fertige Klasse w.z.B. den phpMailer an, denn damit vermeidest du automatisch einige Probleme. Auch wenn dir das jetzt am Anfang alles zu viel erscheint, lohnt es sich dennoch. Beachte die Beispiele auf der Homepage vom phpMailer, die kannst du rauskopieren und anpassen.

  • Danke für den Tipp!
    Habe den phpMailer runtergeladen und eingerichtet.
    Funktioniert soweit. wenn ich die ....test.php aufrufe kommt "Message has been sent". Die Email kommt auch an. Also super, Script funktioniert.
    Jetzt will ich das ja auch "optisch" umsetzen.
    Wie bekomme ich das Script mit meinem in HTML vorliegenden Kontaktformular verknüpft?

    Wenn ich in der kontakt.html unter <form action="http://xxxx.de/phpmailer/test.php" method="post"> einfüge, dann kommt zwar beim klicken des "Senden" Buttons eine Email an, aber ohne den Text den ich in der Nachrichtenbox hinterlegt habe.

  • Wenn du das ohne die php mailer klasse lösen willst, dann ersetze vom obigen Code diesen Teil

    PHP
    // hier findet man die mail Zeile mit der Adresse an die der Inhalt des Formular gesendet wird.    mail("info@xxxx.de","Nachricht von $_POST[name]",$_POST[nachricht]);

    durch diesen hier

    PHP
    // hier findet man die mail Zeile mit der Adresse an die der Inhalt des Formular gesendet wird.
    $from = $_POST['email'];
    $delim = (@ini_get('sendmail_path')) ? '\n' : '\r\n';
    $head = 'MIME-Version: 1.0' . $delim;
    $head .= 'Content-Type: text/plain; charset="iso-8859-1"' . $delim;
    $head .= 'From: ' . $from . $delim;
    $head .= 'Reply-To: ' . $from . $delim;
    $head .= 'Return-Path: <' . $from . '>' . $delim;
    $head .= 'X-Mailer: PHP/' . phpversion() . $delim;
    @mail("info@xxxx.de","Nachricht von $_POST[name]",$_POST[nachricht],$head);

    Wenn du PHPMailer Class verwenden willst, dann schaue dir die Beispiele an. Dort ist gut veranschaulicht wie man das macht.


    @Bandit Solange man nur eine Textemail an sich selbst schickt ist die Verwendung von mail() kein Problem.
    Letztendlich verwendet PHPMailer zum versenden ja auch die Funktion mail().

  • Achso!!!
    Aber kann man das nicht vielleicht einstellen/hinterlegen, dass die Mails von einem anderen Abenser kommen? Also einer Email Adresse die auch bei dem Hoster existiert?