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
607
209
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
607
209
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
607
209
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.124
1.050
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 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 0
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 Shop 5 und Klarna Plugins für JTL-Shop 0
Neu JTL Shop 5.7 - Widerrufsbutton im B2B Templates für JTL-Shop 18
Neu Dropdown jtl shop länge einstellen Allgemeine Fragen zu JTL-Shop 2
JTL-Shop 5.7.0 Widerrufsbutton Einrichtung JTL-Shop5 42
Neu JTL Shop Template Snackys Bildgrößen einstellen Templates für JTL-Shop 1
Neu JTL-Shop 5.7 - Aktuell 5.7.2 Releaseforum 2
Neu Gratisgeschenke im JTL Shop nicht wirklich nutzerfreundlich. Allgemeine Fragen zu JTL-Shop 4
Neu Eigene Artikel Felder im JTL Shop anzeigen lassen User helfen Usern - Fragen zu JTL-Wawi 4
Neu Hilfe bei der Entwicklung gesucht: Werde Tester für meine JTL-Shop Plugins Plugins für JTL-Shop 0
Neu JTL-Shop "Plugin-Vorlage" gesucht User helfen Usern 3
Neu JTL - Shop Adressprüfung - Erfahrungen ? Allgemeine Fragen zu JTL-Shop 2
Neu Wo ist JTL-Debug geblieben? Shopvariablen beim Shop-/Templateentwicklung sichtbar machen? Plugins für JTL-Shop 10
Neu Copy/Paste Abstürze seit JTL-Wawi 2.0.5 User helfen Usern - Fragen zu JTL-Wawi 3
Gelöst: Störung bei LInk11 - JTL- Shops teilweise nicht erreichbar Störungsmeldungen 1
JTL Update auf 1.9 , danach Import Kundenspezifrische Preise velerhaft JTL-Wawi 1.9 0
Wie übernehme ich Artikelnamen von JTL in den neuen Kaufland Niederlande-Verkaufskanal? JTL-Wawi 1.11 1
Neu Wie stelle ich Retouren in JTL für DPD ein? JTL-ShippingLabels - Ideen, Lob und Kritik 1
Neu JTL Wawi 1.11.11 - Zahlungsabgleich bei FYRST Bank verlangt immer Passwort User helfen Usern - Fragen zu JTL-Wawi 0
Neu Der wahrscheinlich östlichste JTL Servicepartner: Standortvorteil, faire Preise und vieles mehr Dienstleistung, Jobs und Ähnliches 16
Neu JTL ShippingLabels - Meldungen JTL-ShippingLabels - Fehler und Bugs 7
Neu Beta-Tester gesucht: Produktdaten aus Artikelfotos schneller für JTL/CSV vorbereiten Dienstleistung, Jobs und Ähnliches 0
Neu oAuth Credentials Login mit JTL .. WO? User helfen Usern 1
Neu Installationsdatei für JTL‑Wawi 1.9.6.5 Installation von JTL-Wawi 2
Neu kostenlos: DHL Sendungsverfolgung für JTL-Wawi – Web-Dashboard mit Frühwarnsystem Schnittstellen Import / Export 0
Neu JTL Wawi 2.0 oder höher WooCommerce-Connector 0
Changelog jtl Wawi 2.0.5 JTL-Wawi 2.0 10
Neu Ist es ohne Probleme möglich Cloudflare in der Free Version mit JTL zu nutzen? Allgemeine Fragen zu JTL-Shop 7
JTL 5.7.1 Widerrufsformular massiver SPAM Einrichtung JTL-Shop5 3
JTL Wawi 1.11.xx langsam unbenutzbar! JTL-Wawi 1.11 4
JTL Anmeldung letzter Benutzer JTL-Wawi 1.11 3
Test-Kunden als solche in JTL markieren, um die Auswertungen sauber zu halten? JTL-Wawi 1.11 1
Neu Ab Wawi 1.10 - JTL.Wawi.Pos.exe direkt ohne JTL-Administrator starten? Allgemeine Fragen zu JTL-POS 2

Ähnliche Themen