Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: Umlaute in Mailformularen (Kontakt, Bestellung usw.) verhagelt

    franc

    • Fördermitglied
    • Beiträge: 97
    Hallo,

    ich habe auf einem Server* modified eCommerce Shopsoftware laufen.

    Kürzlich habe ich in der MySQL Konfiguration ein paar Zeilen für utf8 hinzugefügt, weil der MySQL Server auch noch andere Seiten beliefert, also in my.cnf:

    Code: PHP  [Auswählen]
    default-character-set=utf8
    collation-server=utf8_general_ci
    init-connect='SET NAMES utf8'

    Und in der php.ini:

    Code: PHP  [Auswählen]
    default_charset = "utf-8"

    Seitdem kommen vom Kontaktformular und in Bestellbestätigungsmails** verhagelte Umlaute an, also z.B. GrÃße statt Größe.

    Am Template liegt es nicht, mit dem xtc5-Template ist es nämlich das Gleiche.
    Der Quelltext weist sich mit charset=iso-8859-15 aus.

    Stelle ich in der "php.ini" wieder:

    Code: PHP  [Auswählen]
    default_charset = "iso-8859-1"

    ein, funktionieren die Umlaute wieder, aber die der anderen Webseiten wieder nicht.

    In meiner .htaccess steht aber nun bereits schon:

    Code: PHP  [Auswählen]
    AddDefaultCharset ISO-8859-15

    aber auch:

    Code: PHP  [Auswählen]
    AddCharset iso-8859-1 .html .php .css

    bringt beides nichts.

    Wie kann man das Dilemma lösen?
    Kann ich das "default_charset" irgendwie nur für die Shopseite festlegen?

    Gruß, franc

    Anmerkungen:

    * Ubuntu 8.04 LTS Server mit MySQL 5.0.51a und PHP 5.2.4-2ubuntu5.17 einen modified eCommerce Shopsoftware Shop Version 1.03 (modified eCommerce Shopsoftware v1.03 dated: 2009-12-04) mit dem YAML Template 1.6.0

    ** Im Mailheader lese ich:

    Code: PHP  [Auswählen]
    X-Mailer: PHPMailer [version 1.73]
    MIME-Version: 1.0
    Content-Transfer-Encoding: 8bit
    Content-Type: text/plain; charset="iso-8859-15"


    Linkback: https://www.modified-shop.org/forum/index.php?topic=15306.0
    Templateshop - Eine große Auswahl an neuen und modernen Templates für die modified eCommerce Shopsoftware

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Umlaute in Mailformularen (Kontakt, Bestellung usw.) verhagelt
    Antwort #1 am: 13. September 2011, 20:38:29
    Deine Mails interessiert natürlich nicht, welches Charset du dem Apache mitteilst, die wissen davon gar nichts.

    Code: PHP  [Auswählen]
    xtc_db_query("SET NAMES latin1");

    Direkt nach dem initialen Verbindungsaufbau sollte helfen. Siehe auch: 10.4. Verbindungszeichensatz und -sortierfolge

    franc

    • Fördermitglied
    • Beiträge: 97
    Re: Umlaute in Mailformularen (Kontakt, Bestellung usw.) verhagelt
    Antwort #2 am: 13. September 2011, 21:54:59
    [...]
    Code: PHP  [Auswählen]
    xtc_db_query("SET NAMES latin1");
    [...]

    Leider nein, ich habe das direkt hinter:

    Code: PHP  [Auswählen]
    // make a connection to the database... now
    xtc_db_connect() or die('Unable to connect to database server!');

    in "application_top.php" geschrieben, aber das ändert nichts.

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Umlaute in Mailformularen (Kontakt, Bestellung usw.) verhagelt
    Antwort #3 am: 13. September 2011, 22:59:02
    OK, ich sehe gerade, es ist

    Code: PHP  [Auswählen]
    xtc_db_query("SET NAMES 'latin1'");

    Evtl. auch mal mit

    Code: PHP  [Auswählen]
    xtc_db_query("SET CHARACTER SET latin1");

    (hier in der Tat ohne Anführungszeichen um das Charset) versuchen.

    franc

    • Fördermitglied
    • Beiträge: 97
    Re: Umlaute in Mailformularen (Kontakt, Bestellung usw.) verhagelt
    Antwort #4 am: 13. September 2011, 23:14:42
    [...]
    Code: PHP  [Auswählen]
    xtc_db_query("SET NAMES 'latin1'");

    [...]

    Code: PHP  [Auswählen]
    xtc_db_query("SET CHARACTER SET latin1");
    [...]

    Beides hat zur Folge, dass damit die Umlaute im Shop zu Fragezeichen werden (ISO wird als UTF-8 interpretiert), im Kontaktformularmail bleiben Umlaute aber noch zwei schräge Zeichen (UTF-8 wird als ISO interpretiert).

    Kann man nicht die "default_charset" Regel in der ".htaccess" irgendwie durchsetzen?
    Es ginge ja, wenn ich die Regel in der "php.ini" ändern würde (s.o.).

    Ach, wenn doch nur alles auf der Welt utf-8 wäre...

    Matt

    • Experte
    • Beiträge: 4.241
    Re: Umlaute in Mailformularen (Kontakt, Bestellung usw.) verhagelt
    Antwort #5 am: 14. September 2011, 10:19:48
    Dann bist du wahrscheinlich einfacher bedient, wenn du auf die Texte in den Mails, die aus der Datenbank kommen, ein utf8_decode() anwendest.
    7 Antworten
    5543 Aufrufe
    26. April 2012, 18:36:50 von franc
    7 Antworten
    4759 Aufrufe
    07. Mai 2015, 09:35:49 von sixtyseven
    13 Antworten
    7283 Aufrufe
    27. September 2011, 12:25:17 von jannemann