Ergebnis 1 bis 6 von 6
  1. #1
    Kunde
    Registriert seit
    24.02.2013
    Beiträge
    24

    Problem mit Formmailer

    Hallo in die Runde,

    ich hänge an einem kleinen Formmailer Problem.
    Der Versand klappt, aber wenn ich die Mail bekomme und auf antworten gehe, wird immer meine eigene Mailadresse eingesetzt.
    Klar, das liegt am $mailFrom = ‘"mail@domain.tld’; in der PHP.
    Ich bekomme es aber nicht hin, dass dort die Email aus dem Formular übernommen wird.
    Kann mir da jemand weiterhelfen?

    Danke, Marie

    Formular:

    PHP-Code:
      <div class="row">
            <div class="col medium-6">
                <fieldset>
                    <legend>Ihre pers&ouml;nlichen Daten</legend>

                    <label for="Name">Name <small>(Pflichtfeld)</small></label>
                    <input type="text" id="Name" name="realname" placeholder="Ihr Vor- und Zuname">

                    <label for="Firma">Firma</label>
                    <input type="text" id="Firma" name="Firma" placeholder="Ihre Firma">

                    <label for="Anschrift">Anschrift</label>
                    <textarea id="Anschrift" name="Anschrift" rows="3" cols="20" placeholder="Ihre Anschrift"></textarea>

                    <label for="Telefon">Telefon <small>(Pflichtfeld)</small></label>
                    <input type="tel" id="Telefon" name="Telefonnummer" placeholder="Ihre Festnetznummer">

                    <label for="Fax">Faxnummer</label>
                    <input type="text" id="Fax" name="Faxnummer" placeholder="Ihre Telefaxnummer">

                    <label for="Email">E-Mail <small>(Pflichtfeld)</small></label>
                    <input type="email" id="Email" name="email" placeholder="Ihre E-Mail Adresse">

                                       <label for="Mobil">Mobilnummer</label>
                    <input type="text" id="Mobil" name="Mobilnummer" placeholder="Ihre Mobilnummer">


                </fieldset>
            </div>
            <div class="col medium-6">

                <fieldset>
                    <legend>Ihre Mitteilung</legend>
                    <p>Was wollen Sie uns sagen?</p>

                    <label for="Nachricht">Nachricht <small>(Pflichtfeld)</small></label>
                    <textarea id="Nachricht" name="message" rows="10" cols="20" placeholder="Ihre Nachricht"></textarea>

                    <button name="submit" type="submit" class="button wide">Abschicken</button>
                </fieldset>
            </div>
        </div>
        
    </form>
    Formmailer:

    <?php // ======= Konfiguration: $mailTo = 'mail@domain.tld'; $mailFrom = '"mail@domain.tld'; $mailSubject = 'Kontaktformular'; $mailText = ""; // ======= Text der Mail aus den Formularfeldern erstellen: // Wenn Daten mit method="post" versendet wurden: if(isset($_POST)) { // alle Formularfelder der Reihe nach durchgehen: foreach($_POST as $name => $value) { // Wenn der Feldwert aus mehreren Werten besteht: // (z.B. ) if(is_array($value)) { // "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen $mailText .= $name . ":\n"; // alle Werte des Feldes abarbeiten foreach($valueArray as $entry) { // Einrückungsleerzeichen, Wert und Zeilenumbruch // dem Mailtext hinzufügen $mailText .= " " . $value . "\n"; } // ENDE: foreach } // ENDE: if // Wenn der Feldwert ein einzelner Feldwert ist: else { // "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen $mailText .= $name . ": " . $value . "\n"; } // ENDE: else } // ENDE: foreach } // if // ======= Korrekturen vor dem Mailversand // Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt: if(get_magic_quotes_gpc()) { // eventuell eingefügte Backslashes entfernen $mailtext = stripslashes($mailtext); } // ======= Mailversand // Mail versenden und Versanderfolg merken $mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom); // ======= Return-Seite an den Browser senden // Wenn der Mailversand erfolgreich war: if($mailSent == TRUE) { // Seite "Formular verarbeitet" senden: header("Location: " . $returnPage); echo "Vielen Dank für Ihre Email, wir werden uns um ihr Anliegen kümmern."; } // Wenn die Mail nicht versendet werden konnte: else { // Seite "Fehler aufgetreten" senden: header("Location: " . $returnErrorPage); } // ======= Ende exit(); ?>
    Geändert von Nils Dornblut (24.04.2018 um 06:14 Uhr) Grund: Tags ergänzt

  2. #2
    Forenexperte² (Reseller) Avatar von Enigma
    Registriert seit
    20.07.2001
    Beiträge
    18.383

    AW: Problem mit Formmailer

    Zitat Zitat von marie2000 Beitrag anzeigen
    <?php // ======= Konfiguration: $mailTo = 'mail@domain.tld'; $mailFrom = '"mail@domain.tld'; $mailSubject = 'Kontaktformular'; $mailText = ""; // ======= Text der Mail aus den Formularfeldern erstellen: // Wenn Daten mit method="post" versendet wurden: if(isset($_POST)) { // alle Formularfelder der Reihe nach durchgehen: foreach($_POST as $name => $value) { // Wenn der Feldwert aus mehreren Werten besteht: // (z.B. ) if(is_array($value)) { // "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen $mailText .= $name . ":\n"; // alle Werte des Feldes abarbeiten foreach($valueArray as $entry) { // Einrückungsleerzeichen, Wert und Zeilenumbruch // dem Mailtext hinzufügen $mailText .= " " . $value . "\n"; } // ENDE: foreach } // ENDE: if // Wenn der Feldwert ein einzelner Feldwert ist: else { // "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen $mailText .= $name . ": " . $value . "\n"; } // ENDE: else } // ENDE: foreach } // if // ======= Korrekturen vor dem Mailversand // Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt: if(get_magic_quotes_gpc()) { // eventuell eingefügte Backslashes entfernen $mailtext = stripslashes($mailtext); } // ======= Mailversand // Mail versenden und Versanderfolg merken $mailSent = @mail($mailTo, $mailSubject, $mailText, "From: ".$mailFrom); // ======= Return-Seite an den Browser senden // Wenn der Mailversand erfolgreich war: if($mailSent == TRUE) { // Seite "Formular verarbeitet" senden: header("Location: " . $returnPage); echo "Vielen Dank für Ihre Email, wir werden uns um ihr Anliegen kümmern."; } // Wenn die Mail nicht versendet werden konnte: else { // Seite "Fehler aufgetreten" senden: header("Location: " . $returnErrorPage); } // ======= Ende exit(); ?>
    Kannst Du den Teil bitte noch mal mit Zeilenumbrüchen posten? Ich habe gerade weder Zeit noch Lust, das auseinanderzubröseln.

    Gruß
    Jan
    Two hours of trial and error can save ten minutes of manual reading.

  3. #3
    Communityservice Avatar von Nils Dornblut
    Registriert seit
    15.10.2000
    Beiträge
    43.950

    AW: Problem mit Formmailer

    Zitat Zitat von Enigma Beitrag anzeigen
    Kannst Du den Teil bitte noch mal mit Zeilenumbrüchen posten? Ich habe gerade weder Zeit noch Lust, das auseinanderzubröseln.
    PHP-Code:
    <?php 
    // ======= Konfiguration: $mailTo = 'mail@domain.tld';
     
    $mailFrom '"mail@domain.tld';
     
    $mailSubject 'Kontaktformular';
     
    $mailText "";
     
    // ======= Text der Mail aus den Formularfeldern erstellen: 
     // Wenn Daten mit method="post" versendet wurden: 
     
    if(isset($_POST)) {
         
    // alle Formularfelder der Reihe nach durchgehen: 
         
    foreach($_POST as $name => $value) {
             
    // Wenn der Feldwert aus mehreren Werten besteht: 
             // (z.B. )
             
    if(is_array($value)) {
                 
    // "Feldname:" und Zeilenumbruch dem Mailtext hinzufügen 
                 
    $mailText .= $name ":\n";
                 
    // alle Werte des Feldes abarbeiten 
                 
    foreach($valueArray as $entry) {
                     
    // Einrückungsleerzeichen, Wert und Zeilenumbruch 
                     // dem Mailtext hinzufügen 
                     
    $mailText .= " " $value "\n";
                 } 
    // ENDE: foreach 
             
    // ENDE: if // Wenn der Feldwert ein einzelner Feldwert ist: 
             
    else {
                 
    // "Feldname:", Wert und Zeilenumbruch dem Mailtext hinzufügen 
                 
    $mailText .= $name ": " $value "\n";
             } 
    // ENDE: else 
         
    // ENDE: foreach 
     
    // if 
     // ======= Korrekturen vor dem Mailversand 
     // Wenn PHP "Magic Quotes" vor Apostrophzeichen einfügt: 
     
    if(get_magic_quotes_gpc()) {
         
    // eventuell eingefügte Backslashes entfernen 
         
    $mailtext stripslashes($mailtext);
     }
     
    // ======= Mailversand 
     // Mail versenden und Versanderfolg merken 
     
    $mailSent = @mail($mailTo$mailSubject$mailText"From: ".$mailFrom);
     
    // ======= Return-Seite an den Browser senden 
     // Wenn der Mailversand erfolgreich war: 
     
    if($mailSent == TRUE) {
         
    // Seite "Formular verarbeitet" senden: 
         
    header("Location: " $returnPage);
         echo 
    "Vielen Dank für Ihre Email, wir werden uns um ihr Anliegen kümmern.";
     } 
    // Wenn die Mail nicht versendet werden konnte: 
     
    else {
         
    // Seite "Fehler aufgetreten" senden: header("Location: " . $returnErrorPage);
     
    }
     
    // ======= Ende 
     
    exit();
     
    ?>
    Ich würde aber vermuten, dass dass schon das Grundproblem ist. Der Block startet mit einem Kommentar und ist in dem Sinne eine Zeile, daher wird vermutlich nichts ausgeführt. Interessant wäre auch noch der Anfang des Formulars (<form...).

    Viele Grüße

    Nils
    __________________
    Blog - Facebook - Twitter
    Communitybetreiber: domainfactory GmbH
    Impressum / Pflichtangaben

  4. #4
    Kunde
    Registriert seit
    24.02.2013
    Beiträge
    24

    AW: Problem mit Formmailer

    Problemlösung gefunden :-)
    $name_des_emailfelds = "email"; if (isset($_POST[$name_des_emailfelds]) and filter_var($_POST[$name_des_emailfelds], FILTER_VALIDATE_EMAIL)) { $mailFrom = $_POST[$name_des_emailfelds]; }

  5. #5
    Communityservice Avatar von Nils Dornblut
    Registriert seit
    15.10.2000
    Beiträge
    43.950

    AW: Problem mit Formmailer

    Zitat Zitat von marie2000 Beitrag anzeigen
    Problemlösung gefunden :-)
    $name_des_emailfelds = "email"; if (isset($_POST[$name_des_emailfelds]) and filter_var($_POST[$name_des_emailfelds], FILTER_VALIDATE_EMAIL)) { $mailFrom = $_POST[$name_des_emailfelds]; }
    Da kann zumindest ich jetzt nicht folgen auf was sich das bezieht bzw. wie das gemeint ist?

    Mit freundlichen Grüßen

    Nils Dornblut
    Communityservice
    __________________
    Blog - Facebook - Twitter
    Communitybetreiber: domainfactory GmbH
    Impressum / Pflichtangaben

  6. #6
    Forenexperte² (Reseller) Avatar von Enigma
    Registriert seit
    20.07.2001
    Beiträge
    18.383

    AW: Problem mit Formmailer

    Zitat Zitat von Nils Dornblut Beitrag anzeigen
    Da kann zumindest ich jetzt nicht folgen auf was sich das bezieht bzw. wie das gemeint ist?
    Laut Posting #1 funktionierte das Formular, als Absender wurde aber eine feste Adresse verwendet. Stattdessen sollte als Absender die vom Benutzer angegebene Adresse verwendet werden, damit eine direkte Antwort möglich ist. Das sollte so funktionieren.

    Die Validierung mit filter_var() ist schon kein schlechter Ansatz; allerdings werden gültige IDN-Adressen abgewiesen, wenn sich an der Implementierung nicht letztens etwas geändert hat. Eine Umwandlung in Punycode vor der Filterung wäre sinnvoll.

    Gruß
    Jan
    Two hours of trial and error can save ten minutes of manual reading.

Ähnliche Themen

  1. Refer Problem mit FormMailer ?
    Von darius im Forum Archiv: Einsteiger-Forum
    Antworten: 5
    Letzter Beitrag: 30.03.2004, 07:57
  2. Formmailer Problem
    Von PCC-EDV-Service im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 3
    Letzter Beitrag: 12.03.2004, 07:54
  3. Problem (500) mit Formmailer
    Von Numobo im Forum Scriptsprachen / SQL / Anwendungen
    Antworten: 3
    Letzter Beitrag: 17.10.2003, 16:37
  4. redirect-danke.htm-formmailer-problem
    Von toffy im Forum MyHome und MyHome Plus
    Antworten: 2
    Letzter Beitrag: 03.01.2003, 00:07

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •