Daten aus Textfelder in HTML-E-Mail übernehmen, wie?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Daten aus Textfelder in HTML-E-Mail übernehmen, wie?

    Guten Abend!

    Auf einer Webseite kann der Kunde Daten wie Name, Adresse e.t.c. eintragen
    und diese sollen dann per HTML-Mail verschickt werden.
    Nur leider funktioniert das irgendwie nicht.

    Hier mal der Code dazu (reservierung.php):

    PHP-Code:
    <?php
    ob_start
    ();
    $timestamp time();
    $datum date("d.m.Y",$timestamp);
    $uhrzeit date("H:i",$timestamp);
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html40/strict.dtd">
    <html>
    <head>
    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
    <TITLE>Ihre AUTOVERMIETUNG xyz</TITLE>
    </head>
    <BODY>
     
    <h3>Reservierung</h3>
    <p id="text">
    Sie m&ouml;chten ein Fahrzeug mieten?<br>
    Dann f&uuml;llen Sie bitte das Formular aus und senden Sie uns Ihre Anfrage gleich ab.
    <br><br>
     
    <?php session_start(); 
    // Formular mit Fehlerauswertung 
    $errorFelder = array(); 
    $error null
    $felder = array("Anrede""Vorname""Nachname", ...); 
     
    // Für die Zwischenspeicherung in der Session:
    $_SESSION['Anrede'] = $_POST['Anrede'];
    $_SESSION['Vorname'] = $_POST['Vorname'];
    $_SESSION['Nachname'] = $_POST['Nachname'];
    ...
     
     
    // Überprüfung der eingegebenen Daten 
    if(isset($_POST['ueberpruefung'])) 

      
    $error false
      foreach(
    $felder as $feld

      if(empty(
    $_POST[$feld])) 

      
    $error true
      
    $errorFelder[$feld] = true
        } 
      } 

     
    if(
    $error === false

    // HTML-E-Mail an meine Adresse schicken
    $nachricht "
    <html><head><title>Fahrzeug - Reservierung</title></head>
    <body>
    <p>Fahrzeugreservierung vom 
    $datum um $uhrzeit Uhr</p>
     
    <b><u>Kundendaten</u></b><br>
    $_POST['Anrede']; $_POST['Vorname']; $_POST['Nachname'];
     
    // 
    $_POST['Anrede']; u.s.w. funktioniert leider nicht
    // Nur wenn ich direkt Text eingebe, wird er übermittelt
    // z.B. Herr<br>Martin Mustermann<br>Hauptstr. 123<br>   
     
    </body>
    </html>
    "
    ;
    // für HTML-E-Mails muss der 'Content-type'-Header gesetzt werden
    $header  'MIME-Version: 1.0' "\r\n";
    $header .= 'Content-type: text/html; charset=iso-8859-1' "\r\n";
     
    // zusätzliche Header
    $header .= 'From: info@domain.de <info@domain.de>' "\r\n";
     
    // Betreff definieren
    $betreff "Fahrzeugreservierung";
     
    // Empfänger definieren
    $empfaenger 'info@domain.de';
    foreach(
    $felder as $name
    Header('Location: http://www.domain.de/reservierungsbestaetigung.php');
     
    // E-Mail versenden
    mail($empfaenger$betreff$nachricht$header);
    exit;
     } 
    else 

    if(
    $error === true
    echo 
    '<span style="color: #FF0000; font-size: 12; font-face: arial; font-weight: bold">
    Bitte füllen Sie alle rot markierten Textfelder aus!</span>'

    }
    ?>
    <br><br>
    </p>
    <!-- Beginn - Formular -->
    <!-- ********************** -->
    <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF'])?>" method="post">
    <input type=hidden name="recipient" value="info@domain.de">
    <input type=hidden name="subject" value="Fahrzeugreservierung">
    <INPUT type=hidden name="print_blank_fields" value="1">
    <input type=hidden name="redirect" value="reservierungsbestaetigung.php">
    <input type=hidden name="ueberpruefung" value="1">
     
    <p id="text">
    <b>1. Kundendaten:</b><br><br>   
    <TABLE width="90%" bgcolor="#EBEBEB" id="text">
    <TR>
    <TD WIDTH="100" align="right"><font face="tahoma, arial, helvetia" size="2">Anrede: </font></TD>
    <TD>
    <select name="Anrede" value="<?php print htmlentities($_POST['Anrede']);?>
    <?php if(isset($errorFelder['Anrede'])) echo 'class="error"'?>>
    <option INPUT SIZE="4" MAXLENGTH="4"></option> 
    <option INPUT SIZE="4" MAXLENGTH="4">Frau</option> 
    <option INPUT SIZE="4" MAXLENGTH="4">Herr</option>
    </select>
    </TD>
    </TR>
    <TR>
    <TD align="right"><font face="tahoma, arial, helvetia" size="2">Vorname: </font></TD>
    <TD><INPUT NAME="Vorname" SIZE="20" MAXLENGTH="30" value="<?php echo htmlentities($_POST['Vorname']);?>"
    <?php if(isset($errorFelder['Vorname'])) echo 'class="error"'?>></TD>
    </TR>
    <TR>
    <TD align="right"><font face="tahoma, arial, helvetia" size="2">Nachname: </font></TD>
    <TD><INPUT NAME="Nachname" SIZE="20" MAXLENGTH="30" value="<?php echo htmlentities($_POST['Nachname']);?>"
    <?php if(isset($errorFelder['Nachname'])) echo 'class="error"'?>></TD>
    </TR>
     
    ...
     
    </table>
    <TABLE width="90%" id="text">
    <TR>
    <TD width="100"></TD>
    <TD><INPUT TYPE="submit" VALUE="Reservierung absenden"></TD>
    </TR>
    </table>
    <br>
    </FORM>
    </table></font>
    <! -- Ende - Formular -->
    </p>
     
    </BODY>
    </HTML>
    Es wird zwar eine HTML-E-Mail übertragen, aber die eingegeben Daten des Kunden werden nicht angezeigt.
    Kann mir einer verraten warum nicht?

    Und so sieht dann die HTMl-Mail aus:

    [COLOR=black]Fahrzeugreservierung vom 25.07.2010 um 21:23 Uhr[/COLOR]

    [COLOR=black]Kundendaten[/COLOR]
    [COLOR=black]Herr[/COLOR]
    [COLOR=black]Martin Mustermann[/COLOR]
    [COLOR=black]Hauptstr. 123[/COLOR]
    [COLOR=black]12345 Musterstadt[/COLOR]

    [COLOR=black]u.s.w.[/COLOR]


    Gruß AKSPEEDY
    Zuletzt geändert von AKSPEEDY; 26.07.2010, 00:59. Grund: Code wurde umgebrochen

  • #2
    Regeln lesen, Code umbrechen!
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      Zitat von wahsaga Beitrag anzeigen
      Regeln lesen, Code umbrechen!
      Sorry, ich hoffe, so ist es lesbarer.

      :-)

      Kommentar


      • #4
        Zitat von AKSPEEDY Beitrag anzeigen
        Guten Abend!


        PHP-Code:
        <?php
        ob_start
        ();
        $timestamp time();
        $datum date("d.m.Y",$timestamp);
        $uhrzeit date("H:i",$timestamp);
        ?>
        <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html40/strict.dtd">
        <html>
        <head>
        <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
        <TITLE>Ihre AUTOVERMIETUNG xyz</TITLE>
        </head>
        <BODY>
         
        <h3>Reservierung</h3>
        <p id="text">
        Sie m&ouml;chten ein Fahrzeug mieten?<br>
        Dann f&uuml;llen Sie bitte das Formular aus und senden Sie uns Ihre Anfrage gleich ab.
        <br><br>
         
        <?php session_start(); // DAS HIER SOLL EIGENTLICH IMMER GANZ OBEN STEHEN ... 
        // Formular mit Fehlerauswertung 
        $errorFelder = array(); 
        $error null
        $felder = array("Anrede""Vorname""Nachname", ...); 
         
        // Für die Zwischenspeicherung in der Session:
        $_SESSION['Anrede'] = $_POST['Anrede'];
        $_SESSION['Vorname'] = $_POST['Vorname'];
        $_SESSION['Nachname'] = $_POST['Nachname'];
        ...
         
         
        // Überprüfung der eingegebenen Daten 
        if(isset($_POST['ueberpruefung'])) 

          
        $error false
          foreach(
        $felder as $feld

          if(empty(
        $_POST[$feld])) 

          
        $error true
          
        $errorFelder[$feld] = true
            } 
          } 

         
        if(
        $error === false

        // HTML-E-Mail an meine Adresse schicken
        $nachricht "
        <html><head><title>Fahrzeug - Reservierung</title></head>
        <body>
        <p>Fahrzeugreservierung vom 
        $datum um $uhrzeit Uhr</p>
         
        <b><u>Kundendaten</u></b><br>
        $_POST['Anrede']; $_POST['Vorname']; $_POST['Nachname'];

        // 
        $_POST['Anrede']; u.s.w. funktioniert leider nicht
        // Nur wenn ich direkt Text eingebe, wird er übermittelt
        // z.B. Herr<br>Martin Mustermann<br>Hauptstr. 123<br>
        ... ja warum wohl ... benutz doch mal die richtige Schreibweise, um den Text deiner Email zusammenzusetzen ..
        PHP-Code:
        Text"BlaText<br>".$_POST['Anrede']."<br>".$_POST['Vorname']."&nbsp;".$_POST['Nachname']."<br>";
        Text.=$_POST['Strasse']."<br>".$_POST['PLZ']."&nbsp;".$_POST['Ort']."<br> BlaText fortsetzen"
        und eigentlich solltest du das bei Datum und Uhrzeit der Fahrzeugreservierung genauso machen .. es ist eine immer wiederkehrende Fehlerquelle, wenn du du den String nicht mit den "."-Operator zusammensetzt, sondern dich darauf verlässt, das PHP das schon hinbiegen wird...

        Im übrigen hab ich mal gelernt, dass man für Strings, die HTML enthalten nur den Apostroph benutzen soll (damit man in den Html-Tags die Attribute vernünftig schreiben kann) - dann würde deine Methode gar nicht mehr funktionieren, weil PHP nur in "normalen" Gänsefüßchen automatisch ersetzt

        Außerdem könnte ich mir vorstellen, dass einige andere regelmäßige Poster hier schon ne Gänsehaut unter den Fußsohlen haben wegen HTML-Tabellen fürs Layout - aber dazu sag ich mal nix ....

        Und session_start(); soll der allererste Befehl deines Scriptes sein ... also pflanz das mal vor(!) ob_start();
        Zuletzt geändert von eagle275; 26.07.2010, 05:25.
        [font=Verdana]
        Wer LESEN kann, ist klar im Vorteil!
        [/font]

        Kommentar


        • #5
          PHP-Code:
          <input type=hidden name="recipient" value="info@domain.de"
          ich hoffe das ist nur ein Kopier-Fehler ...
          HTML-Code:
          <input type="hidden" name="recipient" value="info@domain.de">
          PHP-Code:
          <INPUT NAME="Vorname" SIZE="20" MAXLENGTH="30" value="<?php echo htmlentities($_POST['Vorname']);?>"
          und was ist das für ein Feld?
          HTML-Code:
          <input type="text" name="Vorname" size="20" maxlength="30" value=.......>
          das gleiche nochmal beim Nachnamen und vermutlich auch bei strasse und co ....

          und überhaupt .. warum schreibst du soviel in Großbuchstaben .. HTML wird bevorzugt in klein geschrieben (die Tags und Attribute) .....*duck*

          sorry für Doppelpost -
          [font=Verdana]
          Wer LESEN kann, ist klar im Vorteil!
          [/font]

          Kommentar


          • #6
            Hallo eagle275!

            Danke für die Hinweise!
            Die Schusseligkeitsfehler wurden korrigiert.
            Bei der HTMl-Mail bekomme ich diese Fehlermeldung:


            Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /mnt/web2/30/85/xxx/htdocs/reservierung_neu.php on line 170

            Line170: [COLOR=#000000][FONT=Courier New][COLOR=#0000cc]Text[/COLOR][COLOR=#006600]= [/COLOR][COLOR=#cc0000]"BlaText<br>"[/COLOR][COLOR=#006600].[/COLOR][COLOR=#0000cc]$_POST[/COLOR][COLOR=#006600][[/COLOR][COLOR=#cc0000]'Anrede'[/COLOR][COLOR=#006600]].[/COLOR][COLOR=#cc0000]"<br>"[/COLOR][COLOR=#006600].[/COLOR][COLOR=#0000cc]$_POST[/COLOR][COLOR=#006600][[/COLOR][COLOR=#cc0000]'Vorname'[/COLOR][COLOR=#006600]].[/COLOR][COLOR=#cc0000]"&nbsp;"[/COLOR][COLOR=#006600].[/COLOR][COLOR=#0000cc]$_POST[/COLOR][COLOR=#006600][[/COLOR][COLOR=#cc0000]'Nachname'[/COLOR][COLOR=#006600]].[/COLOR][COLOR=#cc0000]"<br>"[/COLOR][COLOR=#006600]; [/COLOR][/FONT][/COLOR]


            Schreibe ich aber:
            [FONT=Courier New][COLOR=#ff9900]// HTML-E-Mail an meine Adresse schicken [/COLOR][/FONT]
            [FONT=Courier New][COLOR=#0000cc]$ nachricht [/COLOR][COLOR=#006600]= [/COLOR][/FONT][COLOR=#cc0000][FONT=Courier New]" [/FONT][/COLOR]
            [FONT=Courier New][COLOR=#cc0000]... [/COLOR][/FONT]
            [FONT=Courier New][COLOR=#cc0000]< b >< u >Kundendaten</ u ></ b >< br > [/COLOR][/FONT]
            [FONT=Courier New][COLOR=#cc0000]Herr< br >[/COLOR][/FONT]
            [COLOR=#cc0000][FONT=Courier New]Max Mustermann< br >[/FONT][/COLOR]

            [COLOR=#cc0000][FONT=Courier New](Leerzeichen in den TAGS natürlich weggedacht)[/FONT][/COLOR]

            [COLOR=#cc0000][FONT=Courier New]funktioniert es.[/FONT][/COLOR]
            [FONT=Courier New][COLOR=#cc0000][/COLOR][/FONT]
            [FONT=Courier New][COLOR=#cc0000]Komisch.[/COLOR][/FONT]
            [FONT=Courier New][COLOR=#cc0000][/COLOR][/FONT]

            [FONT=Courier New][COLOR=#cc0000][/COLOR][/FONT]

            Kommentar


            • #7
              Bei der Variable "Text" fehlt das Dollarzeichen.

              Kommentar


              • #8
                ups .. muss ich wohl übersehen haben ....

                ich hab das allerdings kurz zwischen Aufstehen und Duschen getippt ..
                [font=Verdana]
                Wer LESEN kann, ist klar im Vorteil!
                [/font]

                Kommentar


                • #9
                  So gehts ...

                  // HTML-E-Mail an meine Adresse schicken
                  $nachricht = "
                  <html><head><title>Fahrzeug - Reservierung</title></head>
                  <body>
                  <p><b>Fahrzeugreservierung</b> vom <b>$datum</b> um <i>$uhrzeit</i> Uhr</p>
                  <p>
                  <b><u>Kundendaten</u></b><br>
                  ".$_POST['Anrede']."<br>
                  ".$_POST['Vorname']."&nbsp;".$_POST['Nachname']."<br>

                  ...

                  Gruß AKSPEEDY

                  Kommentar

                  Lädt...
                  X