Ankündigung

Einklappen
Keine Ankündigung bisher.

Kodierung im Kontaktformular

Einklappen

Neue Werbung 2019

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

  • Kodierung im Kontaktformular

    Guten Morgen liebe Community,

    ich habe mal eine kurze Frage:
    Ich hab' 'n Kontaktformular geschrieben & bei der gesendeten E-Mail is' HTML enthalten. Wie muss ich das jetzt Kodieren, damit beim Empfänger, des Kontaktformulars, kein <html>...ankommt sondern formatiertes HTML?
    Hier mal das Forumlar:

    Habe es mit UTF 8 ohne BOM versucht aber dann kommt als E-Mail --> <html> <head>.... <-- an!
    PHP-Code:
    <div class="formular_ueberschriften">Pers&ouml;nliche Angaben- Damit wir Sie erreichen k&ouml;nnen.</div>
    <br /><br/>
        <form method="post">
        <div class="eingabe_box">
                <div class="formular_text">
                    &nbsp; Anrede
                </div>
                <input class="textbox"<?php if(!empty($_POST['anrede'])){ echo 'value="'.$_POST['anrede'].'"'; } ?>  alt="Anrede" name="anrede" class="textbox" type="text" />
        </div>
        
        <div class="eingabe_box">
            <div class="formular_text">
                <b>*</b>Name:
            </div>
            <input class="textbox"<?php if(!empty($_POST['name'])){ echo 'value="'.$_POST['name'].'"'; } ?>  alt="Name" name="name" class="textbox" type="text" />
        </div>
        <div class="eingabe_box">
            <div class="formular_text">
                <b>*</b>Straße:
            </div>
        <input class="textbox"<?php if(!empty($_POST['strasse'])){ echo 'value="'.$_POST['strasse'].'"'; } ?>  alt="Straße" name="strasse" class="textbox" type="text" />
        </div>
        
        <div class="eingabe_box">
            <div class="formular_text">
                <b>*</b>PLZ/Ort
            </div>
        <input class="textbox"<?php if(!empty($_POST['plz'])){ echo 'value="'.$_POST['plz'].'"'; } ?>  alt="PLZ" name="plz" class="textbox" type="text" />
        </div>
        <div class="eingabe_box">
            <div class="formular_text">
                <b>*</b>Telefon
            </div>
        <input class="textbox"<?php if(!empty($_POST['telefon'])){ echo 'value="'.$_POST['telefon'].'"'; } ?>  alt="Telefon" name="telefon" class="textbox" type="text" />
        </div>
        
        <div class="eingabe_box">
            <div class="formular_text">
                &nbsp;Fax
            </div>
            <input class="textbox"<?php if(!empty($_POST['fax'])){ echo 'value="'.$_POST['fax'].'"'; } ?>  alt="Fax" name="fax" class="textbox" type="text" />
        </div>
        <div class="eingabe_box">
            <div class="formular_text">
                &nbsp;Empf&auml;nger
            </div>
            <input class="textbox"<?php if(!empty($_GET['mail'])){ echo 'value="'.$_GET['mail'].'"'; } ?>  alt="Empfaenger" name="empfaenger" class="textbox" type="text" />
        </div>
        
        <div class="eingabe_box">
            <div class="formular_text">
                <b>*</b>E-Mail:
            </div>
            <input class="textbox"<?php if(!empty($_POST['mail'])){ echo 'value="'.$_POST['mail'].'"'; } ?>  alt="Mail" name="mail" class="textbox" type="text" />
        </div>
        <br /><br /><br /><br /><br /><br /><br /> <br /> <br />
         <div class="formular_ueberschriften">
            Fragen - alles was Sie wissen m&ouml;chten.
        </div>
        <br /><br /><br/>
         <div class="eingabe_area">
            <div class="formular_text">
                &nbsp;Anfrage:
            </div>
         <textarea wrap="physical" name="text" cols="50" rows="6" class="textbox_big">
            <?php if(!empty($_POST['text'])){ echo ''.$_POST['text'].''; } ?>
        </textarea>
         </div>
         <br />
         <br />
         <div class="abschicken_button">
            <input alt="Abschicken" name="senden" value="Abschicken" id="formular_senden" type="submit" />
        </div>
    </form>
        <br />

        <?php

          
    if(isset($_POST['senden'])){

            
    $anrede $_POST['anrede'];
            
    $strasse $_POST['strasse'];
            
    $telefon $_POST['telefon'];
             
    $name $_POST['name'];
             
    $plz $_POST['plz'];
             
    $fax $_POST['fax'];
            
    $mail $_POST['mail'];
            
    $empfaenger $_POST['empfaenger'];
             
    $nachricht $_POST['text'];
             
    $emfang $_POST['empfaenger'];
     
             if( 
    $strasse <> '' and $telefon <> '' and $name <> '' and $plz <> '' and $mail <> '' and $nachricht <> ''){
      
              
    $inhalt '<html><head></head><body>'.$anrede.'&nbsp;'.$name.'<br /> Straße:'.$strasse.'<br /> Telefonnummer:'.$telefon.' <br/ >
             Fax: '
    .$fax.' <br /> E-Mail Adresse: '.$mail.' <br /> Anschrift: '.$plz.'<br /><br />
              hat folgende Nachricht an Sie gesendet: <br /><br />'
    .$nachricht.'</body></html>';
              
    $extra =  "From: $name <$mail>\n";
              
    $extra .= "SUBJECT: Kontaktformular ";
              
    $extra .= "Content-Type: text/html Content-Transfer-Encoding: 8bit\n";

              
    mail($emfang$betreff$inhalt$extra);
      
              echo(
    '<div id="nachricht"><a name="geschaft">Ihre Nachricht wurde gesendet.</a></div><br /><br />');
              echo(
    '<meta http-equiv="refresh" content="1; URl=#geschaft">');
             }else {
              echo(
    '<div id="nachricht"><a name="fehler">Füllen Sie bitte alle Felder aus.</a></div><br /><br />');
              echo(
    '<meta http-equiv="refresh" content="1; URl=#fehler">');
      
      
              }
          }
     
        
    ?>

  • #2
    nimmst du mail () , kriegst du Müll ... ...

    nimm ne ordentliche mail-Klasse wie phpmailer - mit der schickst du dann deine valide html-formatierte Mail los - und verpasst dem ganzen ein ->ishtml() (oder sinngemäß) - dann wird die korrekt mit html-Header ausgeliefert [mime-typen] und wird dann von anständigen Mail-Programmen auch so dargestellt - übrigens , valides html verlangt nach einem title-tag im head

    Kommentar


    • #3
      Habe jetzt folgendes in mein Mailformular eingebaut:
      PHP-Code:
      $extra     .="Content-Type: text/html; charset=utf-8\n"
      Jetzt wird das HTML auch schön angezeigt.
      Allerdings wenn jmd. in ein Textfeld 'nen Umlaut eingibt wird der wie folgt dargestellt:
      ä
      Kann ich das auch irgendwie noch extra ändern?!
      Ich habe ja schon in UTF-8 konvertiert...:s

      Kommentar


      • #4
        Hab' jetzt sogar im Formular folgendes eingebaut:
        Code:
        <form method="post" accept-charset="UTF-8">
        Und es wird trotzdem noch so dargestellt --> ä

        Kommentar


        • #5
          Und warum verweigerst du immer noch die Nutzung vom phpMailer?

          Kommentar


          • #6
            Was is' denn an mail() so schelcht?!
            Bis auf das jetzt hatte ich noch nie Probleme damit!
            Zitat von bandit600 Beitrag anzeigen
            Und warum verweigerst du immer noch die Nutzung vom phpMailer?

            Kommentar


            • #7
              Dann hast du bisher Glück gehabt. Um dein Problem zu lösen kannst du dir aber auch gerne die RFC durchlesen, sind nur 57 Seiten: http://tools.ietf.org/rfc/rfc5322.txt Oder du benutzt eben doch den phpMailer.

              Kommentar


              • #8
                wobei an dem "eigenartigen ä" wohl dein eigenes php schuld ist .. was ist der charset der php-Datei ? und wie sieht der header aus ?

                Kommentar


                • #9
                  Kodiert is' die PHP Datei in UTF8 ohne BOM
                  Der Header, in den die PHP includet(?included?richtig geschrieben so?!) wird, sieht wie folgt aus:
                  Code:
                  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
                  <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="de" lang="de">
                  
                  <head>
                      <?php include_once('include/head.php'); ?>
                      <meta http-equiv="content-type" content="text/html; charset=UTF-8" />
                      <meta name="description" content="" />
                      <meta name="author" content="" />
                      <meta name="keywords" content="" />
                  
                      <link href="style.css" type="text/css" rel="stylesheet" />
                      <link href="Bilder\favicon.ico" type="image/x-icon" rel="shortcut icon" />
                      
                      <title></title>
                  </head>
                  <body>
                      <div align="center">
                       <div id="page">
                        <div id="main">
                         <div id="col1">
                          usw....

                  Kommentar


                  • #10
                    sieht soweit in Ordnung aus, aber nach eigener Erfahrung - sende mal
                    mit
                    PHP-Code:
                    header("Content-Type: text/html; charset=UTF-8"); 
                    direkt vor der Ausgabe des Doctype

                    die PHP-Entsprechung für dein meta content ...danach ging es bei mir witzigerweise , obwohl der meta -header schon lange drin war

                    Kommentar


                    • #11
                      Habe das so geändert, wie Du gesagt hast.
                      Die E-Mail kommt trotzdem noch so an -->
                      ä ä
                      Straße:ä
                      Telefonnummer:ä
                      Fax: ä
                      E-Mail Adresse: ä
                      Anschrift: ä

                      hat folgende Nachricht an Sie gesendet:

                      äääää

                      Kommentar


                      • #12
                        du musst in mail() halt noch die richtigen UTF-8-Header mitsenden.

                        PHP-Code:
                        require("class.phpmailer.php");

                        $mail = new PHPMailer();
                        $mail->From     $absender;
                        $mail->FromName $absendername;
                        $mail->AddReplyTo($absender);
                        $mail->Sender     $absender;
                        $mail->CharSet  =  "utf-8";
                        $mail->AddAddress($empfaenger);
                        $mail->Subject $betreff;

                        $mail->IsHTML(true);
                        $mail->Body     $html;
                        $mail->AltBody     $text;

                        $mail->Send(); 

                        Kommentar


                        • #13
                          Habe es wie folgt gemacht:
                          PHP-Code:
                          <?php

                                
                          if(isset($_POST['senden'])){

                                  
                          $anrede $_POST['anrede'];
                                  
                          $strasse $_POST['strasse'];
                                  
                          $telefon $_POST['telefon'];
                                   
                          $name $_POST['name'];
                                   
                          $plz $_POST['plz'];
                                   
                          $fax $_POST['fax'];
                                  
                          $mail $_POST['mail'];
                                  
                          $empfaenger $_POST['empfaenger'];
                                   
                          $nachricht $_POST['text'];
                                   
                          $emfang $_POST['empfaenger'];
                           
                                   if( 
                          $strasse <> '' and $telefon <> '' and $name <> '' and $plz <> '' and $mail <> '' and $nachricht <> ''){
                            
                                    
                          $inhalt '<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"><title></title></head><body>'.$anrede.'&nbsp;'.$name.'<br /> Stra&szlig;e:'.$strasse.'<br /> Telefonnummer:'.$telefon.' <br/ >
                                   Fax: '
                          .$fax.' <br /> E-Mail Adresse: '.$mail.' <br /> Anschrift: '.$plz.'<br /><br />
                                    hat folgende Nachricht an Sie gesendet: <br /><br />'
                          .$nachricht.'</body></html>';
                                    
                          $extra =  "From: $name <$mail>\n";
                                    
                          $extra .= "Subject:Kontaktformular savetec.de ";
                                    
                          $charset ="Content-Type: text/html; charset=utf-8\n";
                                    
                          $extra .= "Content-Type: text/html Content-Transfer-Encoding: 8bit\n";

                                    
                          mail($emfang$betreff$inhalt$extra$charset);
                            
                                    echo(
                          '<div id="nachricht"><a name="geschaft">Ihre Nachricht wurde gesendet.</a></div><br /><br />');
                                    echo(
                          '<meta http-equiv="refresh" content="1; URl=#geschaft">');
                                   }else {
                          Funktionieren tut's allerdings nicht.
                          Is' doch richtig geschrieben so, oder?!

                          Kommentar


                          • #14
                            Es ist schon erstaunlich, wie beratungsresistent du bist. Drei Leute schreiben vom phpMailer, aber nein, du bleibst stur bei mail()!!! Was soll das?

                            Kommentar


                            • #15
                              Zitat von bandit600 Beitrag anzeigen
                              Es ist schon erstaunlich, wie beratungsresistent du bist. Drei Leute schreiben vom phpMailer, aber nein, du bleibst stur bei mail()!!! Was soll das?
                              Weil's so auch funktionieren muss...

                              Kommentar

                              Lädt...
                              X