Projekt

Allgemein

Profil

GX-Bug #61948

Von Ulrich Wenk vor etwa 5 Jahren aktualisiert

Beim Ändern einer Adresse kann es zu einer Fehlermeldung kommen, wenn das JavaScript für die Bundeslandauswahl noch nicht geladen ist. 

 System: 
 - xampp Testsystem unter Windows 7 
 - PHP 7.0 

 Reproduzierbar: bei schnellen Klicken ja 

 Aktionen: 
 - Aufruf zum Ändern einer bestehenden Adresse aus dem Adressbuch oder innerhalb eines Auftrages, URL z.B.: address_book_process.php?edit=1 

 - Wechsel des Landes von einem Land ohne Bundesstaat (z.B. Portugal) auf ein Land mit Bundesstaat (z.B. Vereinigte Staaten von Amerika) 

 - Noch bevor die JavaScript-Aktion das Feld "Bundesland" mit einen Defaultwert füllen kann, wird der "Speichern"-Button ausgelöst. 

 - Browser-Meldung: "Diese Seite funktioniert nicht vinobucks.de meinedomain.de kann diese Anfrage momentan nicht verarbeiten. 
 HTTP ERROR 500" 

 - PHP Log: 
 ``` 
 PHP Fatal error: Uncaught InvalidArgumentException: IntType: Invalid argument value given (expected numeric int got NULL): in \GXEngine\Shared\Types\IntType.inc.php:45 
 Stack trace: 
 #0 \GXEngine\Shared\Types\IdType.inc.php(47): IntType->__construct(NULL) 
 #1 \system\classes\accounts\AddressBookProcessContentControl.inc.php(321): IdType->__construct(NULL) 
 #2 \system\classes\accounts\AddressBookProcessContentControl.inc.php(212): AddressBookProcessContentControl->get_address_data_from_user_input() 
 #3 \system\overloads\AddressBookProcessContentControl\DSGVOAddressBookProcessContentControl.inc.php(23): AddressBookProcessContentControl->process_update() 
 #4 \system\classes\accounts\AddressBookProcessContentControl.inc.php(204): DSGVOAddressBookProcessContentControl->process_update() 
 #5 \GXEngine\Shared\Types\IntType.inc.php on line 45 
 ``` 


 --- 
 **EDIT** 24.04.2019 

 1. Aktiviere unter Kunden > Kunden-Details "Bundesland" 
 2. Lege einen Kunden im Shop an, Land egal, Bundesland egal 
 3. Navigiere als Kunde zum Adressbuch 
 4. Klicke bei Standardadresse auf "Bearbeiten" 
 5. Beobachte: der Default-Eintag im Formularfeld Bundesland erscheint erst nach einem kurzen Moment (<0,5s) 
 6. Merke Dir, wo auf dem Bildschirm der Speichern-Button ist, klicke auf Zurück 
 7. Klicke wieder auf Bearbeiten und sofort auf Speichern, bevor das Bundesland-Feld ausgefüllt wird, viel Spaß! 
 * erwartetes Ergebnis: Adresse wird gespeichert 
 * tatsächliches Ergebnis: FATAL ERROR, siehe Screenshot

Zurück