Ankündigung

Einklappen
Keine Ankündigung bisher.

Umlaut Problem

Einklappen

Neue Werbung 2019

Einklappen
Dieses Thema ist geschlossen.
X
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Umlaut Problem

    Hallo Leute,

    nach stunden langem googlen und dennoch nicht weiter kommen musste ich jetzt einen Thread eröffnen.. Wie der Name schon sagt habe ich ein Problem mit Umlauten in meinem Php Kontaktforumlar. Es geht um ein Formular für eine T-Shirt Bestellung, welches ich auf einem simplen vorgefertigten Kontaktformular Script aufgebaut habe. Habe bereits alles auf UTF-8 umgestellt aber die emails die mit meinem Formular versendet werden weisen immernoch verkehrte umlaute auf so wird z.b. ein ä als ä ausgegeben.. bekanntes Problem halt. Ich dachte erst es wäre ein Server Problem und ich habe das script mal auf einem anderen Webspace getestet und plötzlich wurden die Umlaute normal angezeigt. Doch nachdem ich das Formular weiter ausgebaut habe wurden die Umlaute wieder falsch rausgeschickt in der email. Ich konnte jedoch bis auf Text Inhalt in meinem Template keine veränderung feststelle.. Ich bin echt am verzweifeln und komme nicht weiter.. so wenn ihr nach dieser langen Beschreibung immernoch weiterlest hoffe ich das Ihr mir mit meinem Problem helfen möchtet oder könnt daher poste ich jetz mal die wichtigen codes.

    #1 das html template das die umlaute noch korrekt ausgegeben hat und dies auch immernoch tut
    Code:
    <style type="text/css">
    <!--
    body,td,th {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    }
    -->
    </style><form action="ueberweisung.php" method="POST">
    <table width="100%">
    	<tr>
    		<td>Vorname</td>
    		<td><input type="text" name="vorname" value="{v_vorname}"></td>
    	</tr>
    	<tr>
    		<td>Nachname</td>
    		<td><input type="text" name="nachname" value="{v_nachname}"></td>
    	</tr>
    	<tr>
    	  <td>Email Adresse</td>
    	  <td><input type="text" name="email" value="{v_email}" /></td>
        </tr>
    	<tr>
    		<td>Stra&szlig;e</td>
    		<td><input type="text" name="street" value="{v_street}" /></td>
             </tr>
             <tr>
            <td>Postleitzahl</td>
    		<td><input type="text" name="plz" value="{v_plz}" /></td>
    	</tr>
                <tr>
            <td>Ort</td>
    		<td><input type="text" name="ort" value="{v_ort}" /></td>
    	</tr>
                <td>Telefonnummer</td>
    		<td><input type="text" name="telefon" value="{v_telefon}" /></td>
    	</tr>
    	<tr>
    		<td></td>
    		<td><input type="submit" name="submit" value="{submit}"></td>
    	</tr>
    </table>
    </form>
    #2 das template das nicht mehr korrekt ausgibt:
    nicht über das tabellen wirr warr wundern ich dachte wenn alles eine zusammenhängende tabelle ist funktioniert es vl. wieder
    Code:
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css">
    <!--
    body,td,th {
    	font-family: Verdana, Arial, Helvetica, sans-serif;
    	color: #FFFFFF;
    }
    -->
    </style><form accept-charset="utf-8" action="ueberweisung.php" method="POST">
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
      <tr>
        <td><strong>Gew&uuml;nschte Zahlungsmethode: &Uuml;berweisung</strong></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>Schritt 2: Dateneingabe und Artikelauswahl</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><table width="26%">
          <tr>
            <td width="49%">Vorname</td>
            <td width="51%"><input type="text" name="vorname" value="{v_vorname}" /></td>
          </tr>
          <tr>
            <td>Nachname</td>
            <td><input type="text" name="nachname" value="{v_nachname}" /></td>
          </tr>
          <tr>
            <td>Email Adresse</td>
            <td><input type="text" name="email" value="{v_email}" /></td>
          </tr>
          <tr>
            <td>Stra&szlig;e</td>
            <td><input type="text" name="street" value="{v_street}" /></td>
          </tr>
          <tr>
            <td>Postleitzahl</td>
            <td><input type="text" name="plz" value="{v_plz}" /></td>
          </tr>
          <tr>
            <td>Ort</td>
            <td><input type="text" name="ort" value="{v_ort}" /></td>
          </tr>
          <tr>
            <td>Telefonnummer</td>
            <td><input type="text" name="telefon" value="{v_telefon}" /></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>Artikelauswahl:</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><table width="50%">
          <tr>
            <td width="11%"><input type="text" name="m" value="{v_m}" /></td>
            <td width="89%"><font size="2" face="Arial, Trebuchet MS, Geneva, Helvetica, SunSans-Regular, sans-serif">St&uuml;ck T-Shirt Gr&ouml;&szlig;e M wie abgebildet zzgl. Versandkosten</font></td>
          </tr>
          <tr>
            <td><input type="text" name="l" value="{v_l}" /></td>
            <td><font size="2" face="Arial, Trebuchet MS, Geneva, Helvetica, SunSans-Regular, sans-serif">St&uuml;ck T-Shirt Gr&ouml;&szlig;e L wie abgebildet zzgl. Versandkosten</font></td>
          </tr>
          <tr>
            <td><input type="text" name="xl" value="{v_xl}" /></td>
            <td><font size="2" face="Arial, Trebuchet MS, Geneva, Helvetica, SunSans-Regular, sans-serif">St&uuml;ck T-Shirt Gr&ouml;&szlig;e XL wie abgebildet zzgl. Versandkosten</font></td>
          </tr>
        </table></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
      <tr>
        <td><input type="submit" name="submit" value="{submit}" /></td>
      </tr>
      <tr>
        <td>&nbsp;</td>
      </tr>
    </table>
    </form>
    <p>&nbsp;</p>
    <p>&nbsp;</p>
    #3 ist meine ueberweisung.php
    Code:
    <?
    header('Content-type: text/html; charset=utf-8');
    error_reporting(0);
    include("header.php");
    include("config.php");
    $a='';
    function check_email($email)
    {
      return (eregi('^[0-9a-zA-Z]([-_.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-.]?[0-9a-zA-Z])*\\.[a-zA-Z]{2,4}$',$email)==false ? false : true);
    }
    $content=file_get_contents("template.html");
    $show_form=true;
    if(isset($_POST['submit']))
    {
    	$v_vorname=$_POST['vorname'];
    	$v_nachname=$_POST['nachname'];
    	$v_email=$_POST['email'];
    	$v_street=$_POST['street'];
    	$v_plz=$_POST['plz'];
    	$v_ort=$_POST['ort'];
    	$v_a=$_POST['a'];
    	$v_m=$_POST['m'];
    	$v_l=$_POST['l'];
    	$v_xl=$_POST['xl'];
    	$v_telefon=$_POST['telefon'];
    	$v_email = preg_replace( "/[^a-z0-9 !?:;,.\/_\-=+@#$&\*\(\)]/im", "",  $v_email );
        $v_email = preg_replace( "/(content-type:|bcc:|cc:|to:|from:-)/im", "",   $v_email);
    	if(empty($v_vorname))echo "<font style=\"color:red\">".$errors['vorname']."</font><br>";
    	elseif(empty($v_nachname))echo "<font style=\"color:red\">".$errors['nachname']."</font><br>";
    	elseif(empty($v_email)||!check_email($v_email))echo "<font style=\"color:red\">".$errors['email']."</font><br>";
    	elseif(empty($v_street))echo "<font style=\"color:red\">".$errors['street']."</font><br>";
    	elseif(empty($v_plz))echo "<font style=\"color:red\">".$errors['plz']."</font><br>";
    	elseif(empty($v_ort))echo "<font style=\"color:red\">".$errors['ort']."</font><br>";
    	else
    	{
    		$show_form=false;
    		$data=array();
    		$data['ip'] = $_SERVER['REMOTE_ADDR'];
    		$data['host'] = gethostbyaddr($data['ip']);
    		$data['browser'] = $_SERVER['HTTP_USER_AGENT']; 
    		$data['ref'] = $_SERVER['REQUEST_URI'];
    		$data['ref2'] = $_SERVER['HTTP_REFERER'];
    		$email_admin=file_get_contents("email_admin.txt");
    		$email_kunde=file_get_contents("email_kunde.txt");
    		foreach($txt as $n=>$w)
    		{
    			$email_admin=str_replace("{v_".$n."}",${"v_$n"},$email_admin);
    			$email_kunde=str_replace("{v_".$n."}",${"v_$n"},$email_kunde);
    		}
    		foreach($data as $n=>$w)
    		{
    			$email_admin=str_replace("{".$n."}",$w,$email_admin);
    			$email_kunde=str_replace("{".$n."}",$w,$email_kunde);
    		}
    		$header  = "";
            $header .= "Content-Transfer-Encoding: 7bit\r\n"; 
            $header .= "FROM: ".$mail_data['name_absender']."<".$mail_data['email_absender'].">\r\n";
            $header .= "Reply-To: ".$mail_data['name_absender']."<".$mail_data['email_absender'].">\r\n";
            $header .= "X-Mailer: PHP/" . phpversion()."\r\n"; 
    		$sent_kunde=mail($v_email, $mail_data['betreff_kunde'], $email_kunde, $header);
    		$header  = "";
    		$header .= "Content-Transfer-Encoding: 7bit\r\n"; 
            $header .= "FROM: ".$v_email."\r\n";
            $header .= "X-Mailer: PHP/" . phpversion()."\r\n"; 
    		$sent_admin=mail($mail_data['email_admin'], $mail_data['betreff_admin'], $email_admin, $header);
         	if($sent_admin&&$sent_kunde) {
    			echo '<br /><br />Vielen Dank,
    			Ihre Anfrage wurde erfolgreich an uns weitergeleitet.';
         	} else
    		{
    			echo "<font style=\"color:red\">".$errors['nachricht_senden']."</font><br>";
    			$show_form=true;
    		}
    	}
    }
    else
    {
    	$v_vorname="";
    	$v_nachname="";
    	$v_email="";
    	$v_street="";
    	$v_plz="";
    	$v_ort="";
    	$v_a="";
    	$v_m="";
    	$v_l="";
    	$v_xl="";
    	$v_telefon="";
    	$v_nachricht="";	
    }
    if($show_form)
    {
    
    	foreach($txt as $n=>$w)
    	{
    		$content=str_replace("{".$n."}",$w,$content);
    		$content=str_replace("{v_".$n."}",${"v_$n"},$content);
    	}
    	$content=str_replace("{submit}",$txt2['submit'],$content);
    echo $content.$a;
    }
    ?>
    #4 die config.php
    Code:
    <?
    header('Content-type: text/html; charset=utf-8');
    $txt=array();
    #Texte vor den Eingabefeldern
    $txt['vorname']="Vorname";
    $txt['nachname']="Nachname";
    $txt['street']="Straße und Hausnummer";
    $txt['plz']="Postleitzahl";
    $txt['ort']="Ort";
    $txt['telefon']="Telefonnummer";
    $txt['email']="E-Mail";
    $txt['m']="M";
    $txt['l']="L";
    $txt['xl']="XL";
    
    $txt2=array();
    $txt2['submit']="Bestellen";
    //Ausgabe, falls die E-Mails erfolgreich versendet wurden.
    $txt2['erfolg']="Vielen Dank für Ihre Nachricht. Wir werden uns umgehend mit Ihnen in Verbindung setzen.";
    
    $errors=array();
    #Ausgaben, falls die jeweiligen Felder keinen Inhalte hatten, also leer waren
    $errors['vorname']="Bitte geben Sie den Vornamen ein.";
    $errors['nachname']="Bitte geben Sie den Nachnamen ein.";
    $errors['street']="Bitte geben Sie die Straße ein.";
    $errors['plz']="Bitte geben Sie Ihre Postleitzahl ein.";
    $errors['ort']="Bitte geben Sie Ihren Ort ein.";
    $errors['email']="Bitte geben Sie die E-Mail ein.";
    $errors['nachricht']="Bitte geben Sie eine Nachricht ein.";
    //Ausgabe, falls die E-Mails nicht versendet werden konnten.
    $errors['nachricht_senden']="Nachricht konnte nicht versendet werden.";
    
    $mail_data=array();
    //An diese Adresse wird dem Admin seine Email geschickt
    $mail_data['email_admin']="meine email";
    //Diese Adresse wird als Absender angegeben
    $mail_data['email_absender']="noreply@meineseite.de";
    //Dieser Name wird als Absender angegeben
    $mail_data['name_absender']="T-Shirt Bestellung";
    //Betreff der E-Mail an den Admin
    $mail_data['betreff_admin']="T-Shirt Bestellung per Überweisung";
    //Betreff der E-Mail an den Kunden
    $mail_data['betreff_kunde']="Ihre Bestellung auf meineseite.de";
    ?>
    dazu gibt es noch die header.php und footer.php die in diesem falle aber glaube ich nicht ausschlaggebend sind

    ich poste sie trotzdem mal

    header.php
    Code:
    <?
    header('Content-type: text/html; charset=utf-8');
    if (eregi("header.php",$_SERVER["PHP_SELF"])) { 
        header('Location: ./ueberweisung.php'); 
        die(); 
    }  
    header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");    
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
    header("Cache-Control: no-store, no-cache, must-revalidate"); 
    header("Cache-Control: post-check=0, pre-check=0", false); 
    header("Pragma: no-cache");
    ?>
    <!doctype html public "-//W3C//DTD HTML 4.0 //EN">
    <html>
    <head>
           <title>Deutschland - England | Hilfe</title>
    </head>
    <body>
    footer.php
    Code:
    <?
    if (eregi("header.php",$_SERVER["PHP_SELF"])) { 
        header('Location: ./ueberweisung.php'); 
        die(); 
    } 
    ?>
    </body>
    </html>
    Ich hoffe das mir jemand mit meinem Problem weiter helfen kann.. bin echt mit meinem Latein am Ende..! Ich danke schonaml im Vorraus..!

  • #2
    So wie ich das sehe liegt das nicht an deinen PHP Datein dass UTF8 nciht richtig angezeigt wird sondern an dem e-mail header. die Fehler folgende Zeile:

    PHP-Code:
    $header .="Content-Type: text/html; charset='UTF8'\n"

    MFG
    apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

    Kommentar


    • #3
      Jetzt stell dir vor, jemand liest deinen gesamten ellenlangen Post durch, formuliert eine Antwort und muss dann kurze Zeit später feststellen, dass er/sie sich das alles hätte sparen können, weil dein Problem in einem anderen Forum bereits gelöst wurde. (E: Ist hier noch nicht der Fall, aber die theoretische Möglichkeit bleibt.)

      Das ist richtig richtig ärgerlich.

      Anmerkungen zu Multipostings

      Kommentar


      • #4
        Zitat von mermshaus Beitrag anzeigen
        Jetzt stell dir vor, jemand liest deinen gesamten ellenlangen Post durch, formuliert eine Antwort und muss dann kurze Zeit später feststellen, dass er/sie sich das alles hätte sparen können, weil dein Problem in einem anderen Forum bereits gelöst wurde.

        Das ist richtig richtig ärgerlich.

        Anmerkungen zu Multipostings
        Toll!! ich habe mir den Ganzen Post durchgelesen und den Quelltext durchgearbeitet...
        apt-get install npm -> npm install -g bower -> bower install <package> YOLO [URL]https://www.paypal.me/BlackScorp[/URL] | Mein Youtube PHP Kanal: [url]https://www.youtube.com/c/VitalijMik[/url]

        Kommentar


        • #5
          tut mir leid ich habe hier gepostet da mir die antwort im anderen forum nicht weitergeholfen hat, da meine php kentnisse doch eher bescheiden sind.. habe nicht erwartet im anderen forum noch ne andere antwort zu erhalten und habe daher in diesem forum im anfängerbereich gepostet um eine antwort zu erhalten die für mich besser verständlich ist, was auch der fall war von BlackScorp.. Danke euch vielmals ich werde es direkt mal ausprobieren und dann nochmal Rückmeldung geben..

          Kommentar


          • #6
            Also ich habe dem header nun die zeilen zugeügt und das sieht jetzt so aus
            habe statt text/html text/css ausprobiert da es bei html als spam ankam und total unformuliert und mit sonderzeichen ankam..
            Code:
            $header  = "";
            		$header .="Content-Type: text/css; charset='UTF8'\n"; 
                    $header .= "Content-Transfer-Encoding: 7bit\r\n"; 
                    $header .= "FROM: ".$mail_data['name_absender']."<".$mail_data['email_absender'].">\r\n";
                    $header .= "Reply-To: ".$mail_data['name_absender']."<".$mail_data['email_absender'].">\r\n";
                    $header .= "X-Mailer: PHP/" . phpversion()."\r\n"; 
            		$sent_kunde=mail($v_email, $mail_data['betreff_kunde'], $email_kunde, $header);
            		$header  = "";
            		$header .="Content-Type: text/css; charset='UTF8'\n"; 
            		$header .= "Content-Transfer-Encoding: 7bit\r\n"; 
                    $header .= "FROM: ".$v_email."\r\n";
                    $header .= "X-Mailer: PHP/" . phpversion()."\r\n"; 
            		$sent_admin=mail($mail_data['email_admin'], $mail_data['betreff_admin'], $email_admin, $header);
                 	if($sent_admin&&$sent_kunde) {
            			echo '<br /><br />Vielen Dank,
            			Ihre Anfrage wurde erfolgreich an uns weitergeleitet.';
            erster erfolg, die umlaute werden nun korrekt angezeigt.. aber neues problem.. die email die ankommt ist leer und hat ein attachment worüber man den gesendeten text aufrufen kann, jedoch werden nun die Umlaute aus der Textdatei die versendet wird falsch angezeigt dafür aber die aus den Eingabefeldern richtig.. sieht also nun so aus

            Code:
            T-Shirt Bestellung auf meinerseite.de
            
            Zahlungsmethode: �berweisung
            
            -------------------------
            Kundendaten:
            
            Vorname: Hans
            
            Namename: Hölenmensch
            
            Email: aadf@gssdg.de
            
            Stra�e: höhöhööhö
            
            Postleitzahl: 3515
            
            Ort: hlölölöl
            
            Telefonnummer: 
            
            -------------------------
            
            Bestellung:
            
             St�ck in Gr��e M
             St�ck in Gr��e L
            St�ck in Gr��e XL
            
            -------------------------
            
            
            IP: 78.34.247.173
            
            Host: xdsl-78-34-247-173.netcologne.de

            Kommentar


            • #7
              also ich komme echt nicht mehr weiter, das merkwürdige ist ja das im 1sten template das ich gepostet habe alles noch korrekt versendet wurde...

              Kommentar


              • #8
                Multiposting:
                Multipostings sind in diesem wie in den meisten anderen Foren nicht gern gesehen.
                Bitte lies die Anmerkungen zu Multipostings!

                Der folgende Thread wurde als Multiposting erkannt:
                [→] Mal wieder ein Umlaut Problem - Forum: phpforum.de


                Themenmoderation:
                [Ω] Thema geschlossen
                Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                Kommentar

                Lädt...
                X