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
541
182
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
541
182
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
541
182
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
3.978
983
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 Sync in JTL WAWI 2.0.0 zeigt Verbindungstest Fehlermeldung Onlineshop-Anbindung 3
Neu Rechnung im JTL Shop Kundenkonto Onlineshop-Anbindung 1
Neu Strukturierte Daten vom Typ "Produkt" werden nach Update auf JTL Shop 5.6.1 nur fehlerhaft erkannt JTL-Shop - Fehler und Bugs 3
Neu Wero für den JTL Shop? Plugins für JTL-Shop 21
Neu JTL-Shop Verkauf - Tipps? Business Jungle 4
Neu Kategoriestruktur auf JTL-Wawi in WooCommerce Shop darstellen WooCommerce-Connector 2
Neu DSGVO – Automatisierte Löschung von Kundendaten nach 10 Jahren (JTL-Wawi / JTL-Shop) User helfen Usern - Fragen zu JTL-Wawi 1
Artikel Eigene Felder kommen nur beim ersten Shopabgleich in den JTL-Shop JTL-Wawi 1.11 2
Neu welche Sync Benutzer Daten in Shop und WAWI bei neu-Hosting über JTL Allgemeine Fragen zu JTL-Shop 0
welche Sync Benutzer Daten in Shop und WAWI bei neu-Hosting über JTL JTL-Wawi 1.11 0
Neu OPC friert beim speichern von Änderungen ein nach JTL-Shop Update von Version 5.1.5 auf 5.6.1 JTL-Shop - Fehler und Bugs 0
Neu WaWi - JTL Shop - Kein Abgleich des Artikelnamen möglich Onlineshop-Anbindung 1
Neu Wawi Synchronisation mit JTL Shop nicht möglich! seit 3 Stunden was kann man machen? Onlineshop-Anbindung 1
Neu Neues Plugin: Sauberes Meta-Tracking für JTL-Shop 5 (Pixel + CAPI + Consent) Plugins für JTL-Shop 0
Neu 📢 Plugin "Kreditlimit Plugin für JTL-Shop 5 " von CIN GmbH Plugins für JTL-Shop 0
Neu Wechsel von JTL Shop 5 zu Shopify / ERP-Connector Produkte mit Variationen werden nicht übertragen Shopify-Connector 1
Neu JTL-Connector + Shopware 6: Zweite Lizenz führt zu „Invalid credentials“ und blockiert bestehenden Shop Shopware-Connector 3
Neu Betatester gesucht – Hood-Schnittstelle für JTL-Shop 5 Plugins für JTL-Shop 3
Neu Nachnahme im JTL-Shop – Best Practices zur Vermeidung von Nichtannahmen User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL-Shop 5.2.3 – Google-Shoppin-Plugin 2.3.0: Mehrere Rückgaberichtlinien (DE + Ausland) bei einem Feed / return_policy_label Plugins für JTL-Shop 0
Neu JTL SHOP 5.6 und Konfigurationsartikel Allgemeine Fragen zu JTL-Shop 0
Neu Neues E-Commerce Business mit JTL Wawi - Jtl Shop - Lexware Office (online) - Fragen Starten mit JTL: Projektabwicklung & Migration 2
Neu Bestellung aus JTL-Shop wird nicht in die Wawi übernommen Allgemeine Fragen zu JTL-Shop 1
Neu Anbindung JTL <---> Greyhound via API funktioniert nicht sauber User helfen Usern - Fragen zu JTL-Wawi 0
Neu JTL, was ist eigentlich los mit euch? JTL-Wawi - Fehler und Bugs 5
Neu JTL Advanced & JTL2DATEV JTL-Edition (powered by JERA) User helfen Usern - Fragen zu JTL-Wawi 3
Neu ERDE an JTL- seit 10h kein Versand wegen Störung! JTL-ShippingLabels - Fehler und Bugs 10
Neu Die verwendete Version von JTL-Wawi wird nicht mehr unterstützt. Bitte nutzen Sie die Version 2.0.0.0 User helfen Usern - Fragen zu JTL-Wawi 1
Neu JTL- Archive Pilotkunden gesucht JTL-Wawi 2.0 4
bat Datei JTL Worker als Windows Dienst installieren fehlt JTL-Wawi 2.0 13
Neu JTL-Wawi 2.0.0 Stable Release Releaseforum 0
Neu JTL WMS Mobile Server zeigt neuerdings ein DOS-Fenster JTL-WMS / JTL-Packtisch+ - Ideen, Lob und Kritik 2
Neu JTL POS - nach Gerätetausch - Standard-Datenbank hinterlegen Einrichtung / Updates von JTL-POS 1
Neu Frage zur Übertragung von JTL -> Shopify Shopify-Connector 1
Neu Installation JTL-Wawi 1.5.55.8 - Startet Grundsätzlich im Report-/Druckmodul Installation von JTL-Wawi 4
Rechnungen an Rechnungspostfächer von Kunden schicken ohne dass JTL auch andere Dokumente dorthin schickt? JTL-Wawi 1.11 3
Neu [Erledigt] Installationsdatei JTL‑Wawi 1.5.55.8 erhalten! Installation von JTL-Wawi 0
Neu JTL Exportformat Google - Produkte fehlen im Export Plugins für JTL-Shop 0
Neu Shipping by JTL (Shipping 2.0) JTL-ShippingLabels - Ideen, Lob und Kritik 12
Neu Shipping by JTL (Shipping 2.0) News, Events und Umfragen 0
Neu Zwei eBay-Aufträge (identische Adresse) zusammen versenden, aber getrennte Rechnungen behalten – JTL-Wawi 1.9.6.5 User helfen Usern - Fragen zu JTL-Wawi 1
Neu Artikel Rücknahme über Kassenbon von letzter Woche in JTL-Pos JTL-POS - Ideen, Lob und Kritik 2
JTL-WAWI Datenbankprofil für neue Windows Benutzer JTL-Wawi 1.11 2
Neu GPSR Herstellerinformationen JTL Wawi 1.9.6.4 anbinden User helfen Usern - Fragen zu JTL-Wawi 0
Neu Langfristiger JTL-Partner gesucht: Shopware 6 / Marktplätze (Mirakl, Otto, Kaufland) & Prozess-Optimierung Dienstleistung, Jobs und Ähnliches 1
Neu Erstabgleich Showpare6 zu JTL-WaWi Shopware-Connector 0
Neu LS POS oder JTL POS ? Fragen rund um LS-POS 2
Neu kann man JTL POS alleine nutzen für 29 Euro? Einrichtung / Updates von JTL-POS 0
Update von 1.11.6 auf 1.11.7: JTL Worker verbindet nicht mehr mit Datenbank (WaWi schon) JTL-Wawi 1.11 1
Neu Repricer Erfahrungen mit JTL gesucht User helfen Usern - Fragen zu JTL-Wawi 0

Ähnliche Themen