Beiträge

XTC Probleme String Typecasting

Nach einem Upgrade von PHP 4.3.8 auf 4.3.10 tritt beim Betrieb des Shopsystems XT Commerce ein Fehler bei Berechnungen auf. Das Problem ist eine Verbesserung einer PHP-Funktion.

Einer unserer Hostingkunden hat bereits einen Patch für das Problem des Abschneidens der Nachkommastellen entwickelt welches wir allen anderen Kunden gern zur Verfügung stellen.

inc/xtc_db_perform.inc.php macht ein implizites typecasting per (string)$value bislang und auch auf meinem lokalen XAMPP mit PHP 4.3.7 wird aus einem Zahlenwert float 24,9 ein String “24.9”.

Jetzt arbeitet die PHP Funktion besser: aus float 24,9 wird string 24,9. Aber mit fatalen Folgen für MySQL. Das erwartet nämlich beim Schreiben in ein “decimal (15,4) ” also mit 4 Nachkommastellen – ein ”.”, nicht ein ”,”. Also ist die Ursache das Typecasting per (string)$value.

Update

Mit der Veröffentlichung der Version 3.03 ist ein weiterer Fehler im Zusammenhang mit der aktuellen PHP-Version 4.3.10 aufgefallen.Es liegt nun der aktuelle Patch mit PHP Versionsabfrage und SQL-Update vor.