Advancedform 2.4-dev - Master --- Problem

Ein CMSimple Support Forum für deutsch sprechende Nutzer und Entwickler
Post Reply
frase
Posts: 4884
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Advancedform 2.4-dev - Master --- Problem

Post by frase » Thu Oct 06, 2022 11:42 am

Bevor ich mich auf Github blamiere, frage ich zunächst mal hier.
Ich habe den aktuellen Master von Advancedform installiert (Version 2.4-dev).
Bei Aufruf der Seite "E-Mail-Formulare" meldet der Debug-Modus unter PHP 7.4.2:
Debug-Modus wrote:WARNING: sprintf(): Too few arguments
... \plugins\advancedform\classes\MainAdminController.php:97
WARNING: sprintf(): Too few arguments
... \plugins\advancedform\classes\MainAdminController.php:104
WARNING: sprintf(): Too few arguments
... \plugins\advancedform\classes\MainAdminController.php:109
WARNING: sprintf(): Too few arguments
... \plugins\advancedform\classes\MainAdminController.php:112
WARNING: sprintf(): Too few arguments
... \plugins\advancedform\classes\MainAdminController.php:117
Unter PHP 8.1.1 erscheint eine weiße Seit mit der Meldung:
Uncaught ArgumentCountError: 3 arguments are required, 2 given in ... \plugins\advancedform\classes\MainAdminController.php:97
Stack trace:
#0 ... \plugins\advancedform\classes\MainAdminController.php(97): sprintf('/...', 'delete')
#1 ... \plugins\advancedform\classes\Plugin.php(264): Advancedform\MainAdminController->formsAdministrationAction()
#2 ... \plugins\advancedform\classes\Plugin.php(215): Advancedform\Plugin->mainAdministration()
#3 ... \plugins\advancedform\classes\Plugin.php(181): Advancedform\Plugin->administration()
#4 ... \plugins\advancedform\index.php(31): Advancedform\Plugin->run()
#5 ... \cmsimple\cms.php(1112): include('D:\\...\\ht...')
#6 ... \index.php(6): include('D:\\...\\ht...')
#7 {main}
thrown in ... \plugins\advancedform\classes\MainAdminController.php on line 97
Was könnte ich da falsch gemacht haben?
Ich habe, auf die Fehlermeldungen hin, nämlich jetzt reichlich rumprobiert und bin gar nicht mehr sicher, was jetzt wo und wie ist.
Kann man anhand der Meldungen irgendetwas erkennen?

cmb
Posts: 14051
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform 2.4-dev - Master --- Problem

Post by cmb » Thu Oct 06, 2022 12:11 pm

Ich kann das theoretisch reproduzieren, mir aber nicht erklären, wie sich da ein weiterer Formatierungsspezifizierer eingeschlichen haben könnte. Hast du ein Formular mit einem Prozentzeichen im Namen (kann eigentlich nur manuell in forms.json angelegt worden sein, wenn ich mich nicht irre)?

Auf jeden Fall werden da wohl so einige Plugins (und vermutlich auch der Core) geprüft werden müssen; die Warnung unter PHP 7.4 deutet zwar schon ein Problem an, aber ein ArgumentCountError sollte nicht auftreten dürfen, selbst wenn Anwender da einen Fehler beim Bearbeiten der Sprachdatei machen. Ändert man z.B. diese Zeile in

Code: Select all

$tx['mailform']['subject_default']="Mailform on %s%s";
müsste beim Aufruf des Standard-Mailformulars der selbe Fehler auftreten. Das ist doof!
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 4884
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Advancedform 2.4-dev - Master --- Problem

Post by frase » Thu Oct 06, 2022 12:37 pm

cmb wrote:
Thu Oct 06, 2022 12:11 pm
Ich kann das theoretisch reproduzieren, mir aber nicht erklären, wie sich da ein weiterer Formatierungsspezifizierer eingeschlichen haben könnte.
Möglicherweise Entwarnung!

Ich hatte (lokal) folgende Ordnerstruktur (Namen fingiert):
Ordner: Mein Projekt
Unterordner:
preview-01
preview-02
preview-03
preview-04
preview-05
preview-06

In den Preview-Ordnern befand sich jeweils eine komplette XH-Installation.
Jetzt habe ich alle Previews eine Ebene höher verschoben. In etwa so:
mein_projekt_01
mein_projekt_02
mein_projekt_03
...
mein_projekt_06

Jetzt funktioniert wieder alles normal.
WELCH' ZEICHEN UND WUNDER ???!!!

Auf die Idee bin ich gekommen durch diesen Teil der Meldung:
#6 ... \index.php(6): include('D:\\...\\ht...')
Ob es damit etwas zu tun hat - keine Ahnung.
Auf jeden Fall funktioniert es jetzt unter PHP 7.4.2 und auch unter PHP 8.1.1

cmb
Posts: 14051
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform 2.4-dev - Master --- Problem

Post by cmb » Thu Oct 06, 2022 1:44 pm

frase wrote:
Thu Oct 06, 2022 12:37 pm
Ich hatte (lokal) folgende Ordnerstruktur (Namen fingiert):
Ordner: Mein Projekt
Unterordner:
Hattest du ein Leerzeichen im Ordnernamen? Und welchen Webserver verwendest du?
frase wrote:
Thu Oct 06, 2022 12:37 pm
Möglicherweise Entwarnung!
Muss trotzdem alles mal geprüft werden. sprintf() ist doch vielleicht nicht die beste Idee; auf jeden Fall bei den Advancedform_XH Fällen. Obwohl man das wohl lösen könnte, wenn man diese Zeile durch folgende ersetzt:

Code: Select all

                $href = str_replace("%", "%%", $this->scriptName) . '?advancedform&admin=plugin_main&action=%s' . '&form=' . $id;
Hoffentlich finde ich heute Abend etwas Zeit, mir das genauer anzuschauen.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 4884
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: Advancedform 2.4-dev - Master --- Problem

Post by frase » Thu Oct 06, 2022 1:56 pm

cmb wrote:
Thu Oct 06, 2022 1:44 pm
Hattest du ein Leerzeichen im Ordnernamen? Und welchen Webserver verwendest du?
Beim übergeordneten Ordner ("Mein Projekt") hatte ich tatsächlich ein Leerzeichen drin.
Webserver (lokal xampp):
Apache/2.4.52 (Win64) OpenSSL/1.1.1m PHP/8.1.1

Scheint alles eigene Dummheit gewesen zu sein (z.B. Leerzeichen im Ordnernamen).

cmb
Posts: 14051
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: Advancedform 2.4-dev - Master --- Problem

Post by cmb » Thu Oct 06, 2022 4:02 pm

frase wrote:
Thu Oct 06, 2022 1:56 pm
Scheint alles eigene Dummheit gewesen zu sein (z.B. Leerzeichen im Ordnernamen).
Wer Ordner mit Leerzeichen anlegt, sollte die Finger von Computern lassen – wieso gibt es bei mir C:\Program Files? :P

Ernsthaft: es ist 2022, und da sollte Software i.d.R. mit Leerzeichen in Datei-/Ordnernamen umgehen können. Das stufe ich auf jeden Fall als Bug in Advancedform_XH ein (GH Issue mache ich später auf).
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply