Neu JTL Shop 5.2.2 includes/src/Router/Controller/Backend/CampainController.php

WACOR GmbH

Aktives Mitglied
4. Januar 2021
72
12
Hi,
Wenn man sich in 5.2.2 seine Kampagnen ansehen will, wirft der CampaignController einen Fehler... PHP 8.1.20

Wie kann es sein, dass sich für Fehler die harte 500er werfen noch keinen Hot-Patch für den Core gibt? Das ist ja nicht der einzige Cast-Fehler im Core.
Wann wird Version 5.2.3 erscheinen? (Wo diese Basics hoffentlich behoben und ein ordentliches Code Review durchgeführt worden ist)


Code:
[Thu Jun 22 11:30:29.498578 2023] [proxy_fcgi:error] [pid 432308:tid 139921132222208] [client 80.153.129.17:0] AH01071: Got error 'PHP message: PHP Fatal error:  Uncaught TypeError: lang_bestellstatus(): Argument #1 ($state) must be of type int, string given, called in /var/www/vhosts/wacor.de/httpdocs/includes/src/Router/Controller/Backend/CampaignController.php on line 833 and defined in /var/www/vhosts/domain.de/httpdocs/includes/sprachfunktionen.php:131\nStack trace:\n#0 /var/www/vhosts/domain.de/httpdocs/includes/src/Router/Controller/Backend/CampaignController.php(833): lang_bestellstatus()\n#1 /var/www/vhosts/domain.de/httpdocs/includes/src/Router/Controller/Backend/CampaignController.php(235): JTL\\Router\\Controller\\Backend\\CampaignController->getDefDetailStats()\n#2 /var/www/vhosts/domain.de/httpdocs/includes/src/Router/Strategy/SmartyStrategy.php(40): JTL\\Router\\Controller\\Backend\\CampaignController->getResponse()\n#3 /var/www/vhosts/domain.de/httpdocs/includes/vendor/league/route/src/Route.php(167): JTL\\Router\\Strategy\\SmartyStrategy->invokeRouteCallable()\n#4 /var/www/vhosts/domain.de/httpdocs/includes/vendor/league/route/src/Dispatch...', referer: https://domain.de/admin/campaign

Ich habe das Problem wie folgt gefixed:

~ Zeile 833:
Code:
if ($item->cStatus !== 'n.v.') {
                        $item->cStatus = \lang_bestellstatus($item->cStatus);
                    }

Code:
if ($item->cStatus !== 'n.v.') {
                        // HIE: Cast-Error gepatched (int)-Cast
                        $item->cStatus = \lang_bestellstatus((int)$item->cStatus);
                    }
 

IceZan

Aktives Mitglied
4. Dezember 2021
9
1
Hallo zusammen,
ich habe ein ähnliches Problem... Folgende Fehler werden beim aufrufen der Kampagnen im Shop Backend ausgegeben. (Seite bleibt weiß)


Code:
AH01071: Got error 'PHP message: PHP Warning: Undefined array key 1 in /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php on line 410;
PHP message: PHP Fatal error: Uncaught TypeError: JTL\\Router\\Controller\\Backend\\CampaignController::sortDesc():
Argument #2 ($b) must be of type int, null given in /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php:465
Stack trace:
#0 [internal function]: JTL\\Router\\Controller\\Backend\\CampaignController->sortDesc()
#1 /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php(415): uasort()
#2 /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php(170): JTL\\Router\\Controller\\Backend\\CampaignController->getStats()
#3 /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php(145): JTL\\Router\\Controller\\Backend\\CampaignController->stepOverview()
#4 /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php(128): JTL\\Router\\Controller\\Backend\\CampaignController->handleStep()
#5 /home/users/xxx/www...', referer: https://xxx/admin/


Das "INT" Problem konnte ich durch bearbeiten der Zeile 413 und 415 von ...

Code:
if ($this->campaignViewConfiguration->cSort === 'ASC') {
            \uasort($sort, $this->sortAsc(...));
        } else {
            \uasort($sort, $this->sortDesc(...));
        }

... auf ...

Code:
if ($this->campaignViewConfiguration->cSort === 'ASC') {
            \uasort(((int)$sort), $this->sortAsc(...));
        } else {
            \uasort(((int)$sort), $this->sortDesc(...));
        }

... beheben

Jetzt blieb dann nur noch dies übrig...

Code:
AH01071: Got error 'PHP message: PHP Warning: Undefined array key 1 in /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php on line 410;
PHP message: PHP Fatal error: Uncaught Error: uasort(): Argument #1 ($array) could not be passed by reference in /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php:415
Stack trace:
#0 /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php(170): JTL\\Router\\Controller\\Backend\\CampaignController->getStats()
#1 /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php(145): JTL\\Router\\Controller\\Backend\\CampaignController->stepOverview()
#2 /home/users/xxx/www/xxx/includes/src/Router/Controller/Backend/CampaignController.php(128): JTL\\Router\\Controller\\Backend\\CampaignController->handleStep()
#3 /home/users/xxx/www/xxx/includes/src/Router/Strategy/SmartyStrategy.php(42): JTL\\Router\\Controller\\Backend\\CampaignController->getResponse()
#4 /home/users/xxx/www/xxx/includes/vendor/league/route/src/Route.php(167): JTL\\Router\\Strategy\\SmartyStrategy-...', referer: https://xxx/admin/


Leider ist nicht viel zu diesem Thema zu finden. Daher würde ich mich über ein wenig Unterstützung freuen.

Viele Grüße
Daniel


Shop 5.4.0
 
Zuletzt bearbeitet:

NoOne

Sehr aktives Mitglied
16. März 2024
636
218
Das bleibt nicht übrig, das hast du durch die Änderung selbst verursacht. $sort (das ist Argument #1 für uasort) war nicht das Problem, sondern Argument #2 ($b), das an die Callback-Funktion übergeben wird (in dem Fall sortDesc). Und das Problem hier ist auch nicht ein falscher Datentyp, sondern dass NULL übergeben wird. Höchstwahrscheinlich wird das Array ($sort) leer sein. Das könnte passieren, wenn es in tkampagnevorgang Einträge gibt, deren Wert für kKampagne nicht im gleichnamigen Feld in tkampagne zu finden ist. Sprich: Es sind Daten für eine Kampagne vorhanden, die eigentlich nicht mehr existiert.
 

IceZan

Aktives Mitglied
4. Dezember 2021
9
1
Danke für den Hinweis...
Ich hab die ein oder andere Testkampagne gelöscht und habe jetzt natürlich eine Lücke in der Datenbank. (Sorry bin da auch nicht der Experte)
Nun... jetzt stelle ich mir die total blöde Frage, ob Kampagnen gelöscht werden sollten?!
Für mich sollte dadurch kein Fehler kommen.

Wie komme ich nun an die Kampagnen, bzw wie kann ich dieses "$sort" davon überzeugen nicht leer zu sein.

Grüße
 

NoOne

Sehr aktives Mitglied
16. März 2024
636
218
Normalerweise werden auch alle Vorgänge in tkampagnevorgang gelöscht, wenn eine Kampagne gelöscht wird. Probleme kanns da aber immer geben. Ggf. werden noch Vorgänge der alten Kampagne gespeichert, wenn Nutzer noch mit einer entsprechenden Session unterwegs sind. Dann landet das vermutlich mit kKampagne = 0 in tkampagnevorgang, weil die dazugehörige Kampagne eigentlich nicht mehr existiert. Du könntest also mal in tkampagnevorgang schauen, ob es da Einträge mit kKampagne=0 gibt. Und die im Zweifel alle löschen. Aber nicht ohne Backup!
 
Zuletzt bearbeitet:

IceZan

Aktives Mitglied
4. Dezember 2021
9
1
Es befindet sich ein Eintag in tkampagnenvorgang mit kKampagne = 0

kampagne.jpg

kKampagnenVorgang scheint wohl eine fortlaufende Nummer zu sein.. Gäbe es da Probleme, wenn dort eine Lücke entsteht?

Die Restlichen kKampagnen nummern sind zuordenbar in der tkampagne

Nach dem löschen, bleibt die Seite trotzdem noch weiß, mit dem gleichen Fehler wie oben beschreiben.
 

NoOne

Sehr aktives Mitglied
16. März 2024
636
218
kKampagngenVorgang ist ein AutoIncrement. Lücken dort sind egal. Nach einer Datenbankänderung aber auch immer den Cache leeren.
 

IceZan

Aktives Mitglied
4. Dezember 2021
9
1
Eintrag ist gelöscht, Cache geleert und die Seite bleibt weiterhin weiß. Fehlermeldung wie gehabt.
 

IceZan

Aktives Mitglied
4. Dezember 2021
9
1
Hallo NoOne,

Ich würde mich gerne bei dir bedanken. Irgendwie hat es jetzt doch zu einem Ergebnis geführt.
Ich habe die Zeilen der CampaignController.php wieder in den Originalzustand gebracht:

Code:
if ($this->campaignViewConfiguration->cSort === 'ASC') {
            \uasort($sort, $this->sortAsc(...));
        } else {
            \uasort($sort, $this->sortDesc(...));
        }

Und nach einem erneuten leeren des Caches war die Kampagnen Seite wieder erreichbar.



Ich wünsche dir / euch einen guten Rutsch ins neue Jahr!

Beste Grüße
Daniel
 

John

Sehr aktives Mitglied
3. März 2012
4.157
1.059
Berlin
...ich hatte das Problem auch eben bei einem Kunden.

Einträge in tkampagnevorgang mit einer kKampagne, die in tKampagne nicht mehr definiert war.
Backup der Tabelle, Einträge gelöscht, Cache gelöscht, geht wieder...Danke!
 
Ähnliche Themen
Titel Forum Antworten Datum
Neu JTL Shop 5.7.2 NOVA - Akkordeon Überschriften herabstufen auf H3 Templates für JTL-Shop 3
Neu 🚨 Sicherheitswarnung für JTL-Shop-Betreiber: Manipulation des Checkout-Prozesses durch externes JavaScript (Magecart- / Payment-Skimmer) Betrieb / Pflege von JTL-Shop 2
Neu JTL-Shop Konfigurator - die Ausgewählten Konfigurator gruppen werden im Artikel nicht vollständig angezeigt User helfen Usern - Fragen zu JTL-Wawi 2
Neu JTL-Shop 5 Backup Professional Plugin Plugins für JTL-Shop 0
Neu Plugin trotz Hinweis Kompatibel mit JTL-Shop bis 5.6.* auch unter 5.7.2 nutzen Plugins für JTL-Shop 2
Neu Aktuelle JTL Shop Sicherheitslücke - automatischer Patch im JTL Hosting ? Allgemeine Fragen zu JTL-Shop 15
Neu Suche 10–15 JTL-Shops für kostenlose JTL-Shop-Analyse (verschiedene Branchen) Dienstleistung, Jobs und Ähnliches 0
Neu JTL-Shop 5.7.2 Picture-Tag in mobilen Ansicht lädt beide Bilder JTL-Shop - Fehler und Bugs 0
Seit dem Update meines JTL-Shops auf Version 5.7.1 funktioniert die Verbindung zwischen JTL-Wawi 2.0.4.0 und dem Shop nicht mehr. JTL-Wawi 2.0 6
Neu Shop 5.7.2 - JTL PayPal Checkout legt alles lahm JTL-Shop - Fehler und Bugs 4
Neu JTL Shop Plugin - BD Automatisierter Widerruf (Von Händler für Händler - Schluss mit Mail-Chaos & Spam-Sorgen!) Plugins für JTL-Shop 0
Neu Welche JTL Shop Plugins oder kleinen Hilfstools würden euch im Alltag wirklich helfen? Plugins für JTL-Shop 0
Neu Plugin: JTL Exportformat Google Shopping gibt <g:google_product_category> unter Shop 5.7.1 und Wawi 2.0.4 nicht aus Plugins für JTL-Shop 1
Neu Widerrufsbutton für JTL-Shop 4 Allgemeine Fragen zu JTL-Shop 17
Neu Rabatte aus dem JTL-Shop werden in der Wawi nur als Netto-Preis übernommen, Rabatt % gehen verloren Onlineshop-Anbindung 0
Neu JTL-Shop - Wechsel von Test zum Livebetrieb - was beachten ? Installation / Updates von JTL-Shop 2
Neu Meta Shop seit September 2025: JTL-Lösung für neue Checkout-URL gesucht Allgemeine Fragen zu JTL-Shop 0
Rabatt Coupons in Verbindung mit Staffelpreisen - JTL 1.11.9, JTL Shop JTL-Wawi 1.11 0
Fehler beim Abgleich mit dem JTL-Shop JTL-Wawi 2.0 12
Neu OnFinds: KI-Suche für JTL-Shop mit fairer Abrechnung nach Artikelanzahl. 30 Tage kostenlos testen Plugins für JTL-Shop 10
Neu Freelancer für JTL-Wawi, Shop & Prozessautomatisierung Dienstleistung, Jobs und Ähnliches 2
Neu JTL Shop 5.7.1 mit Fehlern - versandarten zahlungsarten nicht änderbar, leere weiße Seite JTL-Shop - Fehler und Bugs 5
Neu Massiver jtl-shop-cron aufruf JTL-Shop - Fehler und Bugs 7
Neu Neues Plugin: Erweiterter Widerrufsbutton für JTL-Shop Plugins für JTL-Shop 9
Neu [Suche 5 Beta-Tester] KI generiert JTL Shop 5 Templates per Beschreibung – kostenlos testen Templates für JTL-Shop 7
Neu Telemetrie-Datenerfassung in JTL-Shop 5.7.0: Bitte um Klarstellung der DSGVO-relevanten Aspekte Allgemeine Fragen zu JTL-Shop 5
JTL Shop 4 Upgrade auf 5.5.0 --> Fehler 500 Upgrade JTL-Shop4 auf JTL-Shop5 2
JTL Shop 4 Upgrade auf 5.5.0 --> Fehler 404 Upgrade JTL-Shop4 auf JTL-Shop5 11
Neu JTL Search blockiert unsere Shops JTL-Shop - Fehler und Bugs 0
Wichtig JTL-ShippingLabels 1.0: Support-Ende GLS/DPD und Migration von JTL-Start-Kunden nach dem 30. September News, Events und Umfragen 11
Neu JTL-Wawi REST API (Beta): HTTP 402 "Zahlung erforderlich" auf allen Endpunkten trotz gebuchter Beta-Lizenz Schnittstellen Import / Export 2
Kasse in JTL-Wawi 2.0 einbinden JTL-Wawi 2.0 1
Neu JTL-WAWI 2.0.5 Worker läuft nicht mehr und Versandarten werden falsch ausgegeben. JTL-Wawi - Fehler und Bugs 1
JTL-WAWI 2.0.5 Worker läuft nicht mehr und Versandarten werden falsch ausgegeben. JTL-Wawi 2.0 1
Neu Login-Fehler 403 bei app.shipping.jtl-cloud.com seit 17.07.2026 JTL-ShippingLabels - Fehler und Bugs 7
JTL reaktiviert keine Angebote mehr auf Otto Otto.de - Anbindung (SCX) 1
Verbesserungsvorschlag: JTL-POS – Artikel mit Preisabfrage und vollständiger Wawi-Statistik JTL-Wawi 2.0 4
Neu JTL-ShippingLabels-Server ist nicht erreichbar JTL-Wawi - Fehler und Bugs 0
Neu JTL Shipping Labels 4.0 Sendungsnummer Kleinpaket nicht an Amazon übermitteln JTL-ShippingLabels - Ideen, Lob und Kritik 0
Neu JTL-Wawi 1.11.7: Shopify-PDF aus Bestellmetafeld automatisch als Auftragsanhang übernehmen Shopify-Connector 1
JTL 2.0.4: Zahlungsabgleich - Buchungen Fehlen JTL-Wawi 2.0 0
Neu JTL-WMS und JTL-POS... Arbeitsabläufe in JTL-WMS / JTL-Packtisch+ 0
Fehlermeldung beim Einlesen der Buchungen in JTL Fibu JTL-Wawi 2.0 2
JTL-Ameise 2.04 - Export Rechnungen csv - unvollständig JTL-Wawi 2.0 13
Neu Belege aus JTL Wawi zu Lexoffice Schnittstellen Import / Export 5
Neu Varianten die nicht online in JTL geschaltet sind werden trotzdem zu Shopify geladen Shopify-Connector 6
Neu Gesucht: JTL-Systempartner/Freelancer mit Erfahrung in Personalisierungs-/Gravur-Fulfillment Dienstleistung, Jobs und Ähnliches 2
Neu JTL Stammtisch Stuttgart Messen, Stammtische und interessante Events 1
Neu Copy/Paste Abstürze seit JTL-Wawi 2.0.5 User helfen Usern - Fragen zu JTL-Wawi 4
Gelöst: Störung bei LInk11 - JTL- Shops teilweise nicht erreichbar Störungsmeldungen 1

Ähnliche Themen