Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Formular-Email farblich gestalten

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Formular-Email farblich gestalten

    Hallo,

    Ich habe mir mit PHPFormWizard eine Auswertungsdatei für ein Buchungsformular erstellt.
    Wenn ich ein Email bekomme, sind alle Felder nach der Reihe aufgelistet.
    Ich würde das ganze aber gerne in Blöcken gestalten. Also zuerst eine Überschrift Ihre Daten mit einem Blauen Hintergrund usw...
    Wenn ich aber jetzt ein Html einfügen möchte, funktioniert die Formmail nicht.

    Hier ist der Code:

    PHP-Code:
    // Receiving variables

    @$pfw_ip$_SERVER['REMOTE_ADDR'];

    @
    $page_tv addslashes($_POST['page_tv']);

    @
    $pflicht addslashes($_POST['pflicht']);

    @
    $empfaenger_mail addslashes($_POST['empfaenger_mail']);

    @
    $html_template_url addslashes($_POST['html_template_url']);

    @
    $language addslashes($_POST['language']);

    @
    $page_background_color addslashes($_POST['page_background_color']);

    @
    $page_font_color addslashes($_POST['page_font_color']);

    @
    $anrede addslashes($_POST['anrede']);

    @
    $vorname addslashes($_POST['vorname']);

    @
    $nachname addslashes($_POST['nachname']);

    @
    $land addslashes($_POST['land']);

    @
    $email addslashes($_POST['email']);

    @
    $anreise addslashes($_POST['anreise']);

    @
    $abreise addslashes($_POST['abreise']);

    @
    $erwachsene addslashes($_POST['erwachsene']);

    @
    $kinder addslashes($_POST['kinder']);

    @
    $anmerkung addslashes($_POST['anmerkung']);



    // Validation

    //Sending Email to form owner

    $pfw_header "From: $nachname\n"

      
    "Reply-To: $nachname\n";

    $pfw_subject "Kontaktformular";

    $pfw_email_to "email@provider.info";

    $pfw_message "Visitor's IP: $pfw_ip\n"

    "Anrede: $anrede\n"

    "Vorname: $vorname\n"

    "Nachname: $nachname\n"

    "Land: $land\n"

    "Email: $email\n"

    "Anreise: $anreise\n"

    "Abreise: $abreise\n"

    "Erwachsene: $erwachsene\n"

    "Kinder: $kinder\n"

    "Anmerkung: $anmerkung\n";

    @
    mail($pfw_email_to$pfw_subject ,$pfw_message ,$pfw_header ) ;



    header("Location: http://www.url.info/danke.htm"); 
    Wie kann ich hier nun eine "Hintergrundbalken" einbinden?

    Danke im voraus für eure Antworten!

  • #2
    Mail() ist tot, es lebe mail()

    Wenn ich aber jetzt ein Html einfügen möchte, funktioniert die Formmail nicht.
    "Funktioniert nicht..." ist keine Fehlerbeschreibung !

    Einfach alle Fehler unterdrücken ist schlecht. Erst mit isset() prüfen und dann zuweisen.
    Signatur:
    PHP-Code:
    $s '0048656c6c6f20576f726c64';
    while(
    $i=substr($s=substr($s,2),0,2))echo"&#x00$i;"

    Kommentar


    • #3
      a) der @-Operator unterdrückt evtl. auftretende Fehlermeldungen und sollte daher nicht benutzt werden

      b) was sollen die addslashes-Anweisungen??

      c) In Textmails kann man genausowenig wie in .txt-dateien farbig schreiben.
      [PHP]if ($var != 0) {
      $var = 0;
      }[/PHP]

      Kommentar


      • #4
        Hallo,

        Danke erstmal für eure Antworten!

        Wie schon erwähnt habe ich dieses Skript nicht selber programmiert sondern das Programm PHPFormWizard!

        Ich werde jetzt einmal einen Formmailer aus den Links ausprobieren und dann vielleicht diesen verwenden!

        Kommentar


        • #5
          Was genau meinst du denn mit "Hintergrundbalken" ??

          html-Formatierung in Emails könntest du beispielsweise auch so lösen:
          PHP-Code:
          $mailtext '<html>
          <head>
              <title>HTML-E-Mail</title>
          </head>

          <body>

          <h1>HTML-E-Mail</h1>

          <p>Text für den Empfänger oder sonstwas</p>

          <table border="1">
            <tr>
              <td>Eine Tabellen-Spalte</td>
              <td>Noch eine Tabellen-Spalte</td>
            </tr>
            <tr>
              <td>zweite Zeile Spalte 1</td>
              <td>zweite Zeile Spalte 2</td>
            </tr>
          </table>

          <p>Die meisten HTML-Tags wie <b>fett</b> 
          und <i>kursiv</i> kann man hier auch verwenden</p>

          </body>
          </html>
          '
          ;

          $empfaenger "empfaenger@email.de"//Mailadresse
          $absender   "ich@server.de";
          $betreff    "HTML-E-Mail ";
          $antwortan  "mich@server.de";

          $header  "MIME-Version: 1.0\r\n";
          $header .= "Content-type: text/html; charset=iso-8859-1\r\n";

          $header .= "From: $absender\r\n";
          $header .= "Reply-To: $antwortan\r\n";
          $header .= "X-Mailer: PHP "phpversion();

          mail$empfaenger,
                
          $betreff,
                
          $mailtext,
                
          $header);

          echo 
          "Mail wurde gesendet!"
          ...

          Kommentar


          • #6
            Hallo estebu,

            Vielen dank für deinen Code. Der hilft mir schon einmal weiter. Aber wie kann ich in diesem Code die verschiedenen Forumulardaten ausgeben?
            Wenn ich jetzt bei meinem Formular auf Absenden klicke, komme ich auf ein weiße Seite!

            Hier ist mein Formular: LINK

            Danke für die weitere Hilfe!

            Kommentar


            • #7
              error_reporting auf Maximum, Fehleranzeige aktivieren...
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Hallo,

                Leider bin ich nicht der Webhoster und kann so auch leider die php.ini nicht verändern. Da steht display_errors: STDOUT
                Und bei error_reporting: E_ALL & ~E_NOTICE

                Wenn ich jetzt error_reporting(E_ALL); und ini_set('display_errors', TRUE);
                nach dem <?php einfüge, passiert garnichts. Es werden mir keine Fehler angezeigt.

                Wie muss ich die Variablen bei diesem Formmailer einbauen? Muss ich z.B. $name = ($_POST['name']); auch noch einfügen?

                Mfg hanshopfen.

                Kommentar


                • #9
                  Hoffentlich hast du den Tipp von Wolla befolgt, ansonsten ist dir nicht mehr zu helfen...

                  Zitat von Wolla Beitrag anzeigen
                  a) der @-Operator unterdrückt evtl. auftretende Fehlermeldungen und sollte daher nicht benutzt werden
                  Andere Möglichkeit:
                  PHP-Code:
                  header("Location: http://www.url.info/danke.htm"); 
                  danke.htm ist leer?
                  Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                  Kommentar


                  • #10
                    Hallo,

                    Ich benutze seit neuestem schon das Skript von estebu und nicht mehr das von mir.

                    Und mit Funktioniert nicht meine ich, das die Seite, also die formmail.php leer, also weiß, ist. Die Danke Seite hat schon einen Inhalt

                    Und meine Frage ist, wie ich in diesem Code:

                    Code:
                    <?php
                    $mailtext = '<html>
                    <head>
                        <title>HTML-E-Mail</title>
                    </head>
                    
                    <body>
                    
                    <h1>HTML-E-Mail</h1>
                    
                    <p>Text für den Empfänger oder sonstwas</p>
                    
                    <table border="1">
                      <tr>
                        <td>Eine Tabellen-Spalte</td>
                        <td>Noch eine Tabellen-Spalte</td>
                      </tr>
                      <tr>
                        <td>zweite Zeile Spalte 1</td>
                        <td>zweite Zeile Spalte 2</td>
                      </tr>
                    </table>
                    
                    <p>Die meisten HTML-Tags wie <b>fett</b> 
                    und <i>kursiv</i> kann man hier auch verwenden</p>
                    
                    </body>
                    </html>
                    ';
                    
                    $empfaenger = "empfaenger@email.de"; //Mailadresse
                    $absender   = "ich@server.de";
                    $betreff    = "HTML-E-Mail ";
                    $antwortan  = "mich@server.de";
                    
                    $header  = "MIME-Version: 1.0\r\n";
                    $header .= "Content-type: text/html; charset=iso-8859-1\r\n";
                    
                    $header .= "From: $absender\r\n";
                    $header .= "Reply-To: $antwortan\r\n";
                    $header .= "X-Mailer: PHP ". phpversion();
                    
                    mail( $empfaenger,
                          $betreff,
                          $mailtext,
                          $header);
                    
                    echo "Mail wurde gesendet!";
                    ?>
                    die Formulardaten wie Name, Adresse, Nachricht usw... in der Variable $mailtext einfügen kann. Also im Ganzen möchte ich einfach ein E-Mail Template.

                    Danke für die weitere Hilfe!

                    Kommentar


                    • #11
                      Indem du die Variablen, die die Namen enthalten, im Mailtext einsetzt:

                      PHP-Code:
                      $name "Hans Müller";

                      $mailtext "Hallo {$name}, herzlich Willkommen"
                      Das Ganze natürlich mit dem HTML-Geraffel da oben...
                      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

                      Kommentar


                      • #12
                        Zum zig-sten mal:

                        Es ist Unsinn, eine Mail rauszuschicken, die nur einen HTML-Teil besitzt. Für die Empfänger, deren Clients kein HTML versteht bzw. die explizit HTML ausgeschaltet haben MUSS ein Text-Teil mitgeschickt werden.
                        [PHP]if ($var != 0) {
                        $var = 0;
                        }[/PHP]

                        Kommentar


                        • #13
                          Zitat von hanshopfen Beitrag anzeigen

                          Wie muss ich die Variablen bei diesem Formmailer einbauen? Muss ich z.B. $name = ($_POST['name']); auch noch einfügen?
                          Ja logisch Woher sollen die Daten denn sonst kommen? Ich hatte Dir ja nur ein Beispiel gegeben, wie man eine Mail per php im html-Format verschicken kann. Das war doch deine Frage, oder?

                          P.S. Hab mir Dein Formular mal angesehen. Wo ist die Weiterleitung auf "danke.html" geblieben?
                          Die Seite bleibt nach dem Absenden auf "formmail.php" stehen (und bleibt daher wahrscheinlich "weiß" , also leer). Falls Du einen HEADER Befehl in "formmail.php" eingebaut hast, achte unbedingt darauf, dass VOR diesem Befehl KEINE Ausgabe an den Browser erfolgt! (Leerzeichen werden auch bereits als Ausgabe gewertet)
                          Stichwort Error-Reporting noch einmal: Schreibe bitte gleich oben auf der "formmail.php" in die erste Zeile
                          PHP-Code:
                          error_reporting(E_ALL); 
                          und dann poste hier die Meldung, die dann nach dem Absenden erscheint. Ich wette, sie lautet irgendwie so: Cannot modify header information - headers already sent
                          Und falls das so ist guckst du hier: http://webdesignblog.de/sonstiges/ca...er-php-fehler/
                          Da ist es ganz nett erklärt

                          Kommentar


                          • #14
                            Hallo,

                            Vielen Dank für eure Antworten. Jetzt funktioniert die Formmail einigermaßen.
                            Wenn ich jetzt die formmail.php direkt aufrufe kommt folgende Meldung: Notice: Undefined index: name in /home/.sites/.../.../web/mail/neu/formmail.php on line 4
                            Auf der Zeile 4 ist das definiert: $name = ($_POST['name']);

                            Und darunter steht: Email gesendet.

                            Meine letzte Frage ist nun, wie ich verhindern kann, dass mir eine leere E-Mail gesendet wird wenn man formmail.php direkt aufruft?

                            Edit: Konnte das Problem jetzt mit isset lösen!

                            Danke, hanshopfen.

                            Kommentar

                            Lädt...
                            X