Kategorien
Allgemein

Probleme mit PHP 4.3.10

Kurz vor Weihnachten 2004 lieferte xt:Commerce in den Shop-Bestellbestätigungen keine Nachkommastellen in den Artikelpreisen mehr aus – mein Telephon stand nicht mehr still.

Problematisch war zunächst, daß der Error auf lokaler Entwicklungsumgebung PHP 4.3.7 nicht reproduzierbar war. Jedoch gab es ein PHP 4.3.10 Server-Upgrade beim xt:Commerce Spezialisten fairhost24.de – damit war klar, daß das Debuggen am Webserver stattfinden muß.

Relativ schnell war der Fehler isoliert in der inc/xtc_db_perform.inc.php – doch was war passiert? PHP 4.3.10 legt ein von allen bisherigen PHP Versionen (inkl. PHP 5.0er branch) im (string) TypeCasting ans Tageslicht.

Bislang wurden in der xtc_db_perform Float-Werte per (string)$value in Strings konvertiert. Dabei gibt es nun Probleme mit . und , Zeichen. Da MySQL in als dezimal deklarierte Datenfelder nur . als Dezimaltrenner akzeptiert – nun jedoch , übergeben wurde – schnitt die MySQL die Nackommastellen einfach ab (28,87 => 28.00).

Der Fehler kann nur gefixt werden, durch Abfrage auf die vorhandenen PHP-Version.
Ab xt:Commerce Release 3.0.3 ist das abweichende PHP 4.3.10 Verhalten berücksichtigt.

Den fairhost24.de Hinweis gibts hier: http://dogstar.de/article/245/xtc-probleme-string-typecasting

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.