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.
Schlagwörter: Hosting
Weitere Artikel zum Thema
Wenn du diesen Beitrag twitterst, verwende die URL http://tinyurl.com/dzjpve.
Aktuell haben das 0 Twitterer getan.
Ihre Meinung zählt!
2 Kommentare zu “XTC Probleme String Typecasting”
« Gaby Schulze: Schriftsteine in der Uckermark Hostingpaket für Shopsystem XT-Commerce »

RSS-Feed
Statistiken
Montag, 10.01.2005 10:24
Bei welcher XTC Version tritt dieses Problem auf?
Habe es gerade mit der Version v2.0 RC1.2 eine Bestellung getestet und hat einwandfrei funktioniert.
Danke
Christoph
Samstag, 24.10.2009 13:31
Super, und bis heute steht der Unsinn noch im Quellcode:
... wird aus einem Zahlenwert float 24,9 ein String “24.9”. ...
Völlig richtig, denn 24,9 ist kein Zahlenwert vom Typ float (der hat nun mal kein Komma sondern einen Punkt). Wenn PHP aus einem String einen String macht, ist das schon korrekt.