Neu PHP Fatal error in Verfügbarkeitsbenachrichtigungen (OptinAvailAgain.php)

Marco Stark

Aktives Mitglied
18. Oktober 2014
18
2
Betroffene Shop Versionen: 5.1.5, 5.1.2

Nach Durchsicht der serverseitigen Fehlerprotokolle (Apache/nginx) tauchen dort vermehrt folgende Einträge auf:

error.log

2023-01-22 15:32:10 Warning 178.*** mod_fcgid: stderr: PHP Fatal error: Uncaught TypeError: JTL\\Campaign::setCampaignAction(): Argument #2 ($kKey) must be of type int, string given, called in ***/includes/src/Optin/OptinAvailAgain.php on line 131 and defined in ***/includes/src/Campaign.php:289, referer: android-app://com.google.android.gm/ Apache-Fehler 2023-01-22 15:32:10 Warning 178.*** mod_fcgid: stderr: #0 ***/includes/src/Optin/OptinAvailAgain.php(131): JTL\\Campaign::setCampaignAction(), referer: android-app://com.google.android.gm/ Apache-Fehler 2023-01-22 15:32:27 Warning 178.*** mod_fcgid: stderr: PHP Fatal error: Uncaught TypeError: JTL\\Campaign::setCampaignAction(): Argument #2 ($kKey) must be of type int, string given, called in ***/includes/src/Optin/OptinAvailAgain.php on line 131 and defined in ***/includes/src/Campaign.php:289 Apache-Fehler 2023-01-22 15:32:27 Warning 178.*** mod_fcgid: stderr: #0 ***/includes/src/Optin/OptinAvailAgain.php(131): JTL\\Campaign::setCampaignAction() Apache-Fehler 2023-01-22 15:32:30 Warning 178.*** mod_fcgid: stderr: PHP Fatal error: Uncaught TypeError: JTL\\Campaign::setCampaignAction(): Argument #2 ($kKey) must be of type int, string given, called in ***/includes/src/Optin/OptinAvailAgain.php on line 131 and defined in ***/includes/src/Campaign.php:289 Apache-Fehler 2023-01-22 15:32:30 Warning 178.*** mod_fcgid: stderr: #0 ***/includes/src/Optin/OptinAvailAgain.php(131): JTL\\Campaign::setCampaignAction() Apache-Fehler 2023-01-22 15:32:33 Warning 178.*** mod_fcgid: stderr: PHP Fatal error: Uncaught TypeError: JTL\\Campaign::setCampaignAction(): Argument #2 ($kKey) must be of type int, string given, called in ***/includes/src/Optin/OptinAvailAgain.php on line 131 and defined in ***/includes/src/Campaign.php:289 Apache-Fehler 2023-01-22 15:32:33 Warning 178.*** mod_fcgid: stderr: #0 ***/includes/src/Optin/OptinAvailAgain.php(131): JTL\\Campaign::setCampaignAction()

Betroffene Dateien:

-> Campaign.php (Zeile 289 in Shop 5.1.5 | Zeile 296 in Shop 5.2.1)
https://gitlab.com/jtl-software/jtl-shop/core/-/blob/master/includes/src/Campaign.php#L296

-> OptinAvailAgain.php (Zeile 131 in Shop 5.1.5 | Zeile 128 in Shop 5.2.1)
https://gitlab.com/jtl-software/jtl...r/includes/src/Optin/OptinAvailAgain.php#L128

Lösungsvorschlag:

Typ-Validierung von $inquiryID vor dem Aufruf von Campaign::setCampaignAction(\KAMPAGNE_DEF_VERFUEGBARKEITSANFRAGE, $inquiryID, 1.0); implementieren / $inquiryID - falls string - auf int casten, da ReturnType::LAST_INSERTED_ID vieles, aber leider keinen Wert vom Typ "int" zurück gibt.. Ebenfalls zu beachten ist, dass der Rückgabewert von ReturnType::LAST_INSERTED_ID auch ein Boolean sein kann. Diesen einfach auf "int" zu casten, wäre keine gute Idee (...) Ihr wisst was ich meine.

https://gitlab.com/jtl-software/jtl...cludes/src/Optin/OptinAvailAgain.php#L116-125

TL,
Marco
 

Anhänge

  • error.log.txt
    1,9 KB · Aufrufe: 3
Zuletzt bearbeitet:

shops247

Aktives Mitglied
28. April 2021
30
8
Bekomme den gleichen Fehler, Nutzer bekommt nach Klick auf den Bestätigungslink einen 500-Fehler im Browser. Keine Ahnung, ob das ergänzend hilft, aber das hier steht in unserem Fehlerlog (anders als @Marco Stark fehlt mir das Know-how, um Lösungen vorzuschlagen 😁):

Code:
[23-Jan-2023 18:41:33 Europe/Berlin] PHP Fatal error:  Uncaught TypeError: Argument 2 passed to JTL\Campaign::setCampaignAction() must be of the type int, string given, called in ***/includes/src/Optin/OptinAvailAgain.php on line 131 and defined in ***/includes/src/Campaign.php:288
Stack trace:
#0 ***/includes/src/Optin/OptinAvailAgain.php(131): JTL\Campaign::setCampaignAction(6, '179', 1)
#1 ***/includes/src/Optin/Optin.php(93): JTL\Optin\OptinAvailAgain->activateOptin()
#2 ***/includes/src/Shop.php(1711): JTL\Optin\Optin->handleOptin()
#3 ***/index.php(11): JTL\Shop::getEntryPoint()
#4 {main}
  thrown in ***/includes/src/Campaign.php on line 288
 
  • Gefällt mir
Reaktionen: Marco Stark

Marco Stark

Aktives Mitglied
18. Oktober 2014
18
2
Guten Abend nach Berlin :)

Ja, es sind die gleichen Aktoren im Spiel. Feedback von Support kam bereits. Der BugFix wird mit dem nächsten Release eingespielt.

In super dringenden Fällen kann man das Fehlverhalten manuell, vor dem offiziellen Path fixen. Würde ich aber nur machen, wenn der Nutzen entsprechend hoch ist. Denn: Never fummel in the core - oder so 🙌

PS: Dein Log File ist sooooo viel aussagekräftiger als meins. Bei dir stehen sogar die Parameter im Funktionsaufruf: JTL\Campaign::setCampaignAction(6, '179', 1). Die '179' ist das Problem. Dort sollte 179 - ohne Anführungsstriche stehen.

Gruß,
Marco
 
  • Gefällt mir
Reaktionen: shops247
Ähnliche Themen
Titel Forum Antworten Datum
Wichtig Beta Connector für Presta 8 mit PHP 8+ PrestaShop-Connector 15
Neu PrestaShop Connector für Prestashop 8 mit PHP 8.2 wird nicht unterstützt PrestaShop-Connector 3
Neu /navi.php?q=2 Abfragen laufen auf 404 Gelöste Themen in diesem Bereich 4
Neu JTL Connector Woocomerce für PHP Version 7.4 WooCommerce-Connector 2
Neu Connector für php 8.3 / Prestashop 8.1.3 PrestaShop-Connector 6
Neu JTL-Shop 5 und PHP OpCache Allgemeine Fragen zu JTL-Shop 9
Neu Richtige Hook zum Berechnen der Lieferzeit in Artikel.php Technische Fragen zu Plugins und Templates 1
Neu keine Vorschläge und suggest.php JTL-Search 1
Neu Update 5.1.2 auf 5.2.4 Struktur-Migration Fehler in 320 Tabellen, PHP 8.2.14 Gelöste Themen in diesem Bereich 3
Neu gelöst: PHP Abfrage Versandklasse und passendes Bild aussteuern Betrieb / Pflege von JTL-Shop 2
Gelöst Shop 5.3.1 Fatal Error Gelöste Themen in diesem Bereich 2
Neu Fatal Error nach Serverumzug - Was tun? Betrieb / Pflege von JTL-Shop 2
Neu 5.3.1 HTTP Error 500 bei Bestellungen JTL-Shop - Fehler und Bugs 2
Neu Error Code = 0 bei Installation JTL-Shop 5.3.1 Einrichtung JTL-Shop5 3
Verlässlicher Error nach 30 Sekunden temporäre Filter / Filter Artikelsuche JTL-Wawi 1.7 3
In Diskussion Liquid error: Parameteranzahlkonflikt bei einer einfachen Anweisung Gelöste Themen in diesem Bereich 3
Zahlungsarten und Versandarten ERROR 500 Einrichtung JTL-Shop5 8
Neu Error beim öffnen von Artikeln und Unterkategorien in zweiter Sprache JTL-Shop - Fehler und Bugs 1
Neu Shop nicht mehr erreichbar HTTP 500 Error Betrieb / Pflege von JTL-Shop 1
Neu GLS - Originalmeldung Meldung: An error occurred when validating input: Field 'Name1' in Delivery is not present or not valid. JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu Keine Verbindung zu Webshop - Error 500 WooCommerce-Connector 4

Ähnliche Themen