1. Dashboard
  2. Artikel
  3. Forum
    1. Unerledigte Themen
  4. Filebase
  5. Bugtracker
    1. Ticketübersicht
    2. Roadmap
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Forum
  • Artikel
  • Dateien
  • Seiten
  • Bugtracker
  • Erweiterte Suche
  1. commerce:seo Support
  2. Ticketübersicht

Weißer Bildschirm, wenn Kunde Artikel in den Warenkorb legt

  • 0000032
  • Megalab
  • admin
  • 23. Juli 2025 um 12:45
  • 6. August 2025 um 10:15
  • abgeleht

Wichtig

eingesetzte Version
5.3.10
Fehlerbeschreibung
Weißer Bildschirm, wenn Kunde Artikel in den Warenkorb legt

Beschreibung

Fatal Error (Weißer Bildschirm), wenn Kunde Artikel in den Warenkorb legt.

Ursache: wir haben im Modul "Versandarten" -> "Versandkosten nach Preis/Gewicht" in der Tabelle "Versandkosten" alphanumerische Zeichen eingegeben, z.B.
"5:12.00,8:19.50,30:auf Anfrage". Das lässt sich so kommentarlos abspeichern. Wenn ein Kunde diesen Artikel in den Warenkorb legt, gibt es durch den String "auf Anfrage" den

FATAL ERROR(1): "Uncaught TypeError: Unsupported operand types: string * int in /data/htdocs/www.picturelight.info/shop/includes/modules/shipping/table.php:69

bei der Berechnung der Versandkosten, verbunden mit dem weißen Bildschirm. Das ist tückisch, da es bei der Eingabe der Versandkosten nicht geprüft wird und der Fehler auch nicht sofort auffällt.

Meine quick-and-dirty Lösung:

PHP: admin/modules.php
	switch ($key) {
		case 'MODULE_ORDER_TOTAL_GV_INC_SHIPPING' :
		case 'MODULE_ORDER_TOTAL_COUPON_INC_SHIPPING' :
			xtc_db_query("update " . TABLE_CONFIGURATION . " set configuration_value = '" . $value
				. "' where configuration_key IN ('MODULE_ORDER_TOTAL_GV_INC_SHIPPING', 'MODULE_ORDER_TOTAL_COUPON_INC_SHIPPING')");
		break;

		// NEU Prüfung auf Strings in Versandkostentabelle
		// Erlaubt sind: Ziffern, Punkt, Komma, Doppelpunkt und ein leerer String
		// ----------------------------------
		case 'MODULE_SHIPPING_TABLE_COST' :
			if (!preg_match('/^[0-9.,:]*$/', $value)) {
				die('In der Kostentabelle (' . $value . ') dürfen nur Ziffern, Komma, Punkt und Doppelpunkt stehen. <button onClick="history.back();">Zurück</button>');
			}
			break;
		// ----------------------------------                        
	}
Alles anzeigen

Kann man hier eine Fehlermeldung eleganter einblenden als durch "die()"?

Eintrags-Beziehungen

Kommentare 1

admin
6. August 2025 um 10:14
  • Inhalt melden

Hier dürfen wirklich nur numerische Werte eingegeben werden!

Das funktioniert so nicht.

Zu Ticket springen

Ticket-ID
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™