Franz Holzinger

Verse of the day

Es wird aber des HERRN Tag kommen wie ein Dieb in der Nacht, an welchem die Himmel zergehen werden mit großem Krachen; die Elemente aber werden vor Hitze schmelzen, und die Erde und die Werke, die darauf sind, werden verbrennen. So nun das alles soll zergehen, wie sollt ihr denn geschickt sein mit heiligem Wandel und gottseligem Wesen,
2 Petrus 3:10-11

© Bible Gateway's Verse of the Day


Autor  
28-04-11 17:07:05 Umlaute nach Eingabe Adressdaten
Flo Baumann
Hallo

Ich habe einen tt_products shop 2.6.3 auf einem TYPO 4.4.3 aufgesetzt. Nun habe ich das Problem, dass es mir immer die Umlaute der Benutzereingaben zerschiesst. Konkret handelt es sich um das
Formular nach dem Warenkorb, wo der Benutzer seine Rechnungs- und Lieferadresse, sowie seinen Kommentar eingeben kann. Sobald dieses Formular submitted wird, stolpert er über irgendeine
UTF-8 Schwierigkeit. Ich habe im PHP-Code nach der Stelle gesucht, wo die Werte utf8_decoded / utf8_encoded werden, kann aber nichts finden.

Daneben kam ich auf die Idee, das Shop-Template mal sauber im UTF-8 Format abzuspeichern. Leider führt auch das nicht zum Erfolg.

Wenn ich in den Feldern die Umlaute als HTML-Codes eingebe, erscheinen die Zeichen richtig ä --> ä Leider ist das für den Endkunden nicht sehr komfortabel.

Weiss jemand, wo ich ansetzen muss, um dieses Problem zu lösen?

Besten Dank
Flo
9-05-11 15:53:32 Gelöst
Flo Baumann
Nach langem Debuggen konnte der Fehler doch noch behoben werden. Will euch die Lösung hier nicht vorenthalten.

Es lag an einem htmlentities(); in der Datei ext/tt_products/lib/class.tx_ttproducts_info.php

Da steht ab Zeile 297:
while(list(,$fName)=each($infoFields)) {
if ($fName != 'salutation') {
$markerArray['###PERSON_' . strtoupper($fName) . '###'] = htmlentities($this->infoArray['billing'][$fName]);
$markerArray['###DELIVERY_' . strtoupper($fName) . '###'] = htmlentities($this->infoArray['delivery'][$fName]);
}
}

Musste dort bei beiden Zeilen das htmlentities(); entfernen, danach funktioniert es.

Achtung: Zuvor sicherstellen, dass die Datenbank vollständig in utf-8 eingerichtet wurde!

Gruss
Flo
16-05-11 21:16:23 Lösung
Franz Holzinger
Danke für diese Lösung.

function getItemMarkerArray (&$markerArray, $bSelectSalutation) {
global $TCA, $TSFE;
global $TYPO3_CONF_VARS;

$infoFields = t3lib_div::trimExplode(',',$this->feuserfields); // Fields...
reset($infoFields);
while(list(,$fName)=each($infoFields)) {
if ($fName != 'salutation') {
$markerArray['###PERSON_' . strtoupper($fName) . '###'] = $this->infoArray['billing'][$fName];
$markerArray['###DELIVERY_' . strtoupper($fName) . '###'] = $this->infoArray['delivery'][$fName];
}
}
< Zurück zum Forum