Joomla 5 Notice

We are pleased to announce that as of January 29, 2024, all of our Joomla extensions are compatible with Joomla 5.

For all who are still updateing from Joomla 3 to Joomla 4: Joomla 4 Migration instructions are available here:

There is now a separate Documentation for Visforms for Joomla 4 and for Visforms for Joomla 5!

Forum

Visforms Subscription user can ask questions in our forum. Please log in with the relevant user first.
Everybody can access the forum for reading.

Please only ask 1 question per topic.

Important information for almost every question:
V1: Which Visforms version is running?
V2: Which Joomla version is running?
V3: Which PHP version is running?

Fehlermeldung bei "Daten bearbeiten"-Link in Datensicht mit Edit Link

More
3 years 6 months ago - 3 years 6 months ago #7833 by fap
Hallo Visforms-Team,

nachdem ich ein funktionierendes J3 auf J4 geupgraded habe, gibt es folgendes Problem.

Ich habe einen Menüpunkt vom Typ "Datensicht mit Edit Link".

Wenn ich im Frontend auf den Button "Daten bearbeiten" klicke, erhalte ich die Fehlermeldung
Code:
Argument 'userId' of event onTableBeforeCheckout must be an integer

Joomla 4.0.6
PHP 8 (mit 7.4 funktioniert es aber auch nicht)
MariaDB 10.5.11

Wo könnte der Fehler liegen bzw. benötigt ihr noch weitere Informationen?

Vielen Dank und viele Grüße
Last edit: 3 years 6 months ago by fap.

More
3 years 6 months ago #7835 by Administrator AV
Hallo fap,

der Fehler tritt nicht in Visforms auf, da Visforms selbst nicht auf das Event 'onTableBeforeCheckout' reagiert; das wäre dann irgendwo in einem anderen Plugin.
Allerdings kann es natürlich sein, dass Visforms im Aufruf zum Auschecken und Öffnen des Datensatzes - warum auch immer - keine UserID hat bzw. ermitteln kann.
Ich versuche gerade den Fehler inkl. Update zu reproduzieren ...

Es wäre sehr hilfreich, wenn ich den kompletten Aufrufstapel des Fehlers hätte.

Danke und Gruß, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 5:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 4.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 5:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 4.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
3 years 6 months ago #7839 by fap
Hallo Ingmar,

vielen Dank für deine schnelle Antwort!

Neben Visforms habe ich nur das Sourcerer-Plugin von RegularLabs und die freie Version von AkeebaBackup installiert.

Wie kann ich den kompletten Aufrufstapel ermitteln?

Viele Grüße
fap

More
3 years 6 months ago #7841 by Administrator AV
1. Du stellst das Folgende ein:
Administrator --> System --> Konfiguration
Tab 'System' mit 'System debuggen' = Ja
Tab 'Server' mit 'Fehler berichten' = Maximum

2. Du reproduzierst den Fehler

3. Eine ganze Seite mit dem kompletten PHP-Aufrufstapel (der call stack) erscheint im Fehlerfall

:idea: I recommend you the new and up-to-date documentation for Joomla 5:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 4.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 5:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 4.
Bitte immer nur 1 Frage pro Thema stellen :-).

More
3 years 6 months ago #7846 by fap
Hallo Admin,

vielen Dank für die schnelle Antwort!

Ich habe das Debugging wie beschrieben durchgeführt und das Resultat hier hochgeladen: shareimg.eu/img/KBFS

Vielen Dank und viele Grüße

More
3 years 6 months ago #7848 by Administrator AV
Hallo fap,

herzlichen Dank für die vollständige Debugging-Information - das war sehr hilfreich!
Ich kann den Fehler auch auf einer frischen Joomla 4 Instanz mit dem aktuellen Visforms nachstellen.

Unter J3 war es möglich, dass ein nicht angemeldeter Benutzer Visforms-Daten im Frontend editieren kann.
Hierfür war zusätzlich zu allen notwendigen Formular- und Feld- und Daten-Einstellungen in der Formularkonfiguration unter Tab 'Formularberechtigungen' für die entsprechende Rolle 'Guest' für das Recht 'Daten im Frontend editieren' die 'Errechnete Einstellung' von 'Erlaubt' einzustellen.

Das funktioniert nun unter J4 nicht mehr.
Der Code von J4 erfordert für ein Checkout zum Editieren von Daten eine UserID größer 0, was bei einem unangemeldeten Benutzer nicht der Fall (UserID = 0).
Joomla 4 wirft für diesen Fall, schon bei der Erzeugung des 'BeforeCheckoutEvent' Objektes als Vorbereitung zum triggern des Events 'onTableBeforeCheckout', eine gewollte und beabsichtigte Exception die dann zum Fehler führt.

Für Visforms bedeutet dies, dass ich auf die eine oder andere Weise zumindest unter J4 diesen Fall ebenfalls ausschließen muss.
Wie ich das im Detail machen werde, weiß ich jetzt noch nicht - aber da wird sich schon etwas passendes finden lassen.

Für dich bedeutet es, dass du unter J4 einem unangemeldeten Benutzer keine Daten mehr zum Editieren anbieten kannst.
Der Anwendungs-Fall, dass jeder Unbekannte (alle mit UserID = 0) Daten im Frontend editieren kann, ist aber auch wirklich ungewöhnlich.
Wenn viele Unbekannte (alle UserID = 0) gleichzeitig etwa den selben Datensatz bearbeiten, kann der konkurrierende Zugriff gar nicht mehr sinnvoll behandelt werden.

Auf alle Fälle herzlichen Dank für dein interessantes Reporting!
Visforms wird diesen Fall zeitnah in einem der nächsten Releases berücksichtigen und zukünftig das Auftreten dieses Fehlers verhindern.

Liebe Grüße, Ingmar

:idea: I recommend you the new and up-to-date documentation for Joomla 5:
docs.joomla-5.visforms.vi-solutions.de/en/docs/
Most of this also applies retrospectively to Joomla 4.
Please only ask 1 question per topic :-).

:idea: Ich empfehle Dir die neue und aktuelle Dokumentation für Joomla 5:
docs.joomla-5.visforms.vi-solutions.de/docs/
Das meiste gilt rückwirkend auch für Joomla 4.
Bitte immer nur 1 Frage pro Thema stellen :-).

Moderators: Administrator AVAdministrator IV
Powered by Kunena Forum