Ankündigung

Einklappen
Keine Ankündigung bisher.

Problem mit Zeichenkodierung in Kontaktformular

Einklappen

Neue Werbung 2019

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

  • Problem mit Zeichenkodierung in Kontaktformular

    Hallo Spezialisten, bin seit heute neu hier und hoffe hier geholfen zu werden.

    Auf unserer Webseite habe ich ein Kontaktformular, welches bei einer Rückantwort keine Umlaute konnte. Habe dann folgendes eingefügt:

    PHP-Code:
    $header "From:" .$eMail"\nContent-Type:text/html; charset=utf-8\nContent-Transfer-Encoding: 8bit\n"

    Nun gehen Umlaute, aber die Formatierung ist hin, es wird alles in einem Textblock angezeigt.

    so sieht das script jetzt aus:



    PHP-Code:
    <? if(false){ ?><link href="../css/core.css" rel="stylesheet" type="text/css" /><? }?>
    <div id="sub">
    <?php
    //Betreff holen
    $url $_SERVER["REQUEST_URI"];
    $url explode("?"$url);
    $betr = @str_replace("betr=","",$url[1]);
    //falls formular schon geschickt
    if(isset($_POST['PLZ'])){

          
    //$admin= 'kmajo@kabelbw.de';
        
    $admin'verkauf@watersam.de';
        
    $subject"Formular auf www.watersam.de";
        
    $message"Nachrichten an ".$admin.":\n\n";
        
        foreach(
    $_POST as $name=>$value) { 
            
    $message.= "$name$value\n";
        }
        
        
    $header "From:" .$eMail"\nContent-Type:text/html; charset=utf-8\nContent-Transfer-Encoding: 8bit\n";
        
    // mail($admin, $subject, $message, "From: ");
        
    mail($admin$subject$message$header);
        
        echo 
    "<p><strong>Vielen Dank f&uuml;r Ihre Nachricht. Wir werden uns so schnell wie m&ouml;glich mit Ihnen in Verbindung setzen.</strong><p>";

    und so vorher:



    PHP-Code:
    <? if(false){ ?><link href="../css/core.css" rel="stylesheet" type="text/css" /><? }?>
    <div id="sub">
    <?php
    //Betreff holen
    $url $_SERVER["REQUEST_URI"];
    $url explode("?"$url);
    $betr = @str_replace("betr=","",$url[1]);
    //falls formular schon geschickt
    if(isset($_POST['PLZ'])){

          
    //$admin= 'kmajo@kabelbw.de';
        
    $admin'verkauf@watersam.de';
        
    $subject"Formular auf www.watersam.de";
        
    $message"Nachrichten an ".$admin.":\n\n";
        
        foreach(
    $_POST as $name=>$value) { 
            
    $message.= "$name$value\n";
        }
        
             
    mail($admin$subject$message"From: ");
            
        echo 
    "<p><strong>Vielen Dank f&uuml;r Ihre Nachricht. Wir werden uns so schnell wie m&ouml;glich mit Ihnen in Verbindung setzen.</strong><p>";
    Kann mir da jemand helfen?

    Danke

  • #2
    1. Bitte keine eigenständigen Fragestellungen in themenfremde Threads mit rein posten. *abgetrennt*
    2. Bitte Beitrag bearbeiten, siehe Hinweisbeitrag oben.

    Kommentar


    • #3
      An die Moderatoren,

      wie gesagt bin ich neu hier und die obige Antwort ist wenig hilfreich, sondern ein wenig unverständlich.

      So wird mir nicht geholfen...was ist falsch an meiner Problembeschreibung??

      Aber gut, war wohl nix..

      Danke

      Kommentar


      • #4
        Hinweisbeitrag: "unformatierte oder unkonkrete Code-Postings"
        Dort ebenfalls verlinkte Boardregeln: "Sei sorgfältig: …"

        Kommentar


        • #5
          Nein, den kompletten Beispielcode mit der Wikipedia zu verlinken ist auch nicht richtig (und wohl auch kaum sinnvoll).

          [php]-Tags benutzen!

          Kommentar


          • #6
            Muss mich ja erst einfummeln, kannte ja Euren Editor nicht

            Danke

            Kommentar


            • #7
              1) der Header ist falsch (Content-Type verwenden!)
              2) der Header wird gar nicht abgesetzt.

              Kommentar


              • #8
                Was ist da falsch...bin Anfänger.

                Danke

                Kommentar


                • #9
                  Interessiert mich nicht. Guck ins Handbuch oder benutz Google. Stichwörter hast Du ja.

                  [edit] Oh, ich hab wohl geträumt. Handelt sich um ein mail-Statement. Wiedermal
                  Mail ist tot, es lebe Mail

                  Kommentar


                  • #10
                    PHP-Code:
                    $betr = @str_replace("betr=","",$url[1]); 
                    Und mach die/den Klammeraffen weg.. Damit kann man sich herrlich selbst verarschen..

                    LG

                    Kommentar


                    • #11
                      wie nikosch schon schrieb ... der Aufruf von mail() wird wohl die Fehlerquelle sein .. der sieht so unvollständig aus - und obendrein benutze doch gleich eine Mailer-Klasse, um den Problemen mit den RFCs aus dem Weg zu gehen.

                      Kommentar


                      • #12
                        Hi,
                        sind schon merkwürdige Hilfen hier

                        Alles nur drumherum Gerede, konkrete Hilfe keine. Dass ich ein Handbuch brauche, weiß ich selbst, aber damit kann ich keine schnelle Hilfe finden, sondern muss es durchackern und googlen hat mir nicht wirklich was gebracht.

                        Wenn unterwegs ein Autofahrer Hilfe braucht, sagt man da " schau ins Handbuch" oder wenn er betont Anfänger zu sein dann " interessiert mich nicht" zu sagen und mit Fachausdrücken um sich zu werfen die er nicht versteht?

                        Ihr könnt stolz sein, aber könnt keine echte Hilfe leisten.
                        So vertreibt Ihr Hilfesuchende, aber vielleicht wollt Ihr ja unter Euch bleiben mit Eurem Fachwissen...nur nichts verraten.

                        So das wars fürs Erste

                        Kommentar


                        • #13
                          Wenn unterwegs ein Autofahrer Hilfe braucht, sagt man da " schau ins Handbuch" oder wenn er betont Anfänger zu sein dann "
                          Gutes Beispiel. Autofahren lernt man für gewöhnlich auch in der Fahrschule, bevor man am Straßenverkehr teilnimmt. Oder wieviele Utofahrer haben Dich im Leben schon gefragt, wo denn die Bremse ist? Hier passiert das täglich.

                          Und wenn Du Links nicht anklicken kannst, kann ich auch nicht helfen.

                          Kommentar


                          • #14
                            Wenn ich mich nicht irre, solltest Du die Header-Sektionen der Mail mit \r\n abschliessen, du verwendest nur \n. Natürlich ist der Hinweis auf eine Mailerklasse weiterhin angebracht!

                            Kommentar


                            • #15
                              Zum einen:
                              PHP-Code:
                              if ( false ) { /* ... */ } else { /* ... */ 
                              bedeutet:
                              Code:
                              WENN ( Bedingung zutrifft ) DANN { tue das hier } SONST { tue das hier }
                              oder auch:
                              Code:
                              WENN ( Bedigung ist TRUE ) DANN { tuh das hier } SONST { tuh das hier }
                              deins:
                              Code:
                              WENN ( FALSE ist TRUE ) DANN { tue das hier } SONST { tue das hier }
                              Eskalation in deinem Fall:
                              Code:
                              WENN ( FALSE ist TRUE ) TUE NIEMALS { ... } TUE { !!! }

                              Zum anderen:
                              PHP-Code:
                              //Betreff holen 
                              $url $_SERVER["REQUEST_URI"]; 
                              $url explode("?"$url); 
                              $betr = @str_replace("betr=","",$url[1]); 
                              Das ist Murks.
                              PHP-Code:
                              $url = isset($_GET['betr']) ? $_GET['betr'] : false
                              Formulare Identifiziert man eigentlich nicht an irgendeinem Feld, sondern entweder an einem "Submit-Button" oder an allen Feldern die man benötigt.
                              HTML-Code:
                              <form action="" method="post">
                                 <input type="text" name="feldA" />
                                 <input type="text" name="feldB" />
                                 <input type="text" name="feldC" />
                                 <input type="submit" name="submitButton" value="senden" />
                              </form>
                              lazy:
                              PHP-Code:
                              $feldA = isset($_POST['feldA']) ? $_POST['feldA'] : false;
                              $feldB = isset($_POST['feldB']) ? $_POST['feldB'] : false;
                              $feldC = isset($_POST['feldC']) ? $_POST['feldC'] : false;
                              $submitter = isset($_POST['submitButton']) ? true false;

                              if ( 
                              $submitter ) {
                                 
                              /* ... */

                              strict:
                              PHP-Code:
                              $feldA = isset($_POST['feldA']) ? $_POST['feldA'] : false;
                              $feldB = isset($_POST['feldB']) ? $_POST['feldB'] : false;
                              $feldC = isset($_POST['feldC']) ? $_POST['feldC'] : false;
                              $submitter = isset($_POST['submitButton']) ? true false;

                              if ( 
                              $submitter && $feldA && $feldB && $feldC ) {
                                 
                              /* ... */

                              strict and secure within databases:
                              PHP-Code:
                              /* connection of database maintaned in database.connection.php
                                  and delivered within $db-var */

                              require_once 'database.connection.php';

                              $feldA = isset($_POST['feldA']) ? mysql_real_escape_string($_POST['feldA'], $db) : false;
                              $feldB = isset($_POST['feldB']) ? mysql_real_escape_string($_POST['feldB'], $db) : false;
                              $feldC = isset($_POST['feldC']) ? mysql_real_escape_string($_POST['feldC'], $db) : false;
                              $submitter = isset($_POST['submitButton']) ? true false;

                              if ( 
                              $submitter && $feldA && $feldB && $feldC ) {
                                 
                              /* ... */

                              Strings und "sichere" Header:
                              PHP-Code:
                              $header = array();

                              $header[] = 'header1: wert';
                              $header[] = 'header2: wert';
                              $header[] = 'header3: wert';
                              $header[] = 'header4: wert';

                              $submitableHeader join("\r\n"$header); 
                              Lesestoff Handbuch: [man]join[/man], [man]if[/man], [man]mysql_real_escape_string[/man], [man]mail[/man]

                              sonstige Leserstoff:
                              - http://de.wikipedia.org/wiki/Affenformular
                              - http://www.robo47.net/text/38-Mail-ist-tot-es-lebe-mail

                              Kommentar

                              Lädt...
                              X