Liebe CPO-Nutzer,
nach dem Installieren und Einrichten von mod_form als Mailformular versendet Mod. Formular keine Mails. Als Fehlermeldung im Log erhalte ich die Meldung
MAIL ERROR undefined index a0
.
Leider kann ich mit der Meldung nichts anfangen...
Weiß jemand Rat?
leider sieht die Fehlermeldung nicht vollständig aus, denn da steht normalerweise noch Informationen dahinter, wo der Fehler zu finden ist.
Ein Index (also ein Array-Key) "a0" kommt im Modul eigentlich nicht vor, lediglich als Farbwert in der CSS-Datei des Datumswählers.
Seit PHP 7.4 und vor allem ab 8.0 werden solche Index-Fehler (Verwendung nicht geprüfter Array-Keys) als Fehler ausgegeben. Da wäre es natürlich besser die aktuellere CPO 4.1.6+3 zu verwenden, da genau diese Probleme dort bearbeitet wurden.
Aber vielleicht steht da ja doch noch etwas mehr Text in der Fehlermeldung, so dass man was zum Suchen und Finden hat.
oder es werden im Idealfall alle Variablen vordefiniert
(was bei älteren PHP-Versionen ja nicht notwendig war und somit die Entwicklung massiv vereinfachte und zur Popularität beitrug, aber eben jetzt massive Nacharbeit erfordert)
oder es werden im Idealfall alle Variablen vordefiniert
(was bei älteren PHP-Versionen ja nicht notwendig war und somit die Entwicklung massiv vereinfachte und zur Popularität beitrug, aber eben jetzt massive Nacharbeit erfordert)
Leider steht nicht mehr Text in der Fehlermeldung! Eine Suche in den Dateien nach einem undefinierten Array habe ich auch nicht gefunden... Ich verwende das letzte Update von mod_form (4.1e)
Was mich irritiert ist die Angabe "MAIL ERROR", die normalerweise nicht von PHP sondern vielleicht von Sendmail stammt.
In welchem Log siehst Du die Meldung?
Stehen da noch weitere Fehler und das ist nur eine Auswirkung statt die Ursache?
Kannst Du nicht die Ausgabe auf der Seite aktivieren?
Vielleicht stimmt auch was mit der Mail-Adresse oder sonstigen Parametern nicht?
Würde die Meldung im CPO-Log stehen und dort "MAIL ERROR!" (mit Ausrufungszeichen) lauten, dann müsste danach noch sowas wie "Error message: ..." kommen und wäre ein Hinweis auf das Modul selbst und dort die Datei actions.inc.php.
Dann müsstest Du aber auch "Bestätigungen" aktiviert haben...
Dort findet sich nämlich tatsächlich $activeModules[$directory]['a0'] als Teil des Bestätigungsmechanismus.
Danke, Markus!
Ich probiere morgen aus.
Habe die Moduleinstellungen nochmals verändert und diese Meldungen erhalten:
MAIL ERROR! Galle-Schallnas / Error message: Undefined variable: debugging
09.02. 2022 20:25 MAIL ERROR! Galle-Schallnas / Error message: Object of class mysqli could not be con
Guten Morgen,
die obige Zeile in der Datei mod_form/includes/actions.inc.php liefert die folgende Fehlermeldung:
Warning: Invalid argument supplied for foreach() in /var/www/.../refik-veseli-schule.eu/cms/mod_form/includes/actions.inc.php on line 65
Beim Absenden einer Testmail liefert das Log wieder
10.02. 2022 06:16 MAIL ERROR! Absendername / Error message: Undefined variable: debugging
10.02. 2022 06:16 MAIL ERROR! Absendername / Error message: Object of class mysqli could not be converted to int
Ok, dann hast Du nicht die Modulversion, die ich angenommen habe. Da wird das "invalid argument" nämlich eine Zeile davor frisch definiert.
Wie schon gesagt sind die Meldungen im CPO-Log nur die Spitze des Eisbergs, also die Auswirkung und nicht die Ursache.
Die Ursache kann man nur mit aktivierten PHP-Fehlermeldungen ergründen.
Da Du die Frage nicht beantwortest, gehe ich davon aus, dass Du NICHT PHP 7.3 benutzen kannst.
Etwas Off-Topic:
Seit einem Jahr biete ich eine für PHP 8 geeignete CPO+ Version an und arbeite bereits an PHP 8.1.
Aber es gibt keinerlei Feedback, so dass auch keinerlei Entwicklung der Module mehr möglich ist.
Gerade das Formular-Modul wurde mittlerweile in verschiedenen Versionen weiterentwickelt und angepasst und ich habe keinen Überblick mehr in welchem der Zweige was genau angepasst wurde, sorry! Daher kann ich auch nicht wissen wer genau mit welcher Version arbeitet, da helfen auch Versionsnummern nichts...
Du hast die Version 2020 ja auch als "Arbeitsversion" erhalten.
Hallo Markus,
die php-Fehlermeldungen habe ich aktiviert...
Zu deiner Frage mit php 7.3: sollte dies den Fehler unterdrücken?
Ich versuche, die php-Version auf 7.3 zurückzudrehen...
Zu deinem "off-topic"-Absatz:
Ich habe die 4.1.6+1 installiert und bin seitdem dabei, diese mit allen Anpassungen und Code-Ergänzungen zu versehen, damit z.B. enhanched_delete, database_cleanup u.s.w. laufen.
Wenn ich jetzt deine 4.1.6+3 installiere, muss ich von vorn anfangen...
Ich weiß, dass ich ohnehin irgendwann auf php 8 umstellen muss, jedoch läuft mir die Zeit davon, weil die Webseite in spätestens 14 Tagen produktiv gesetzt werden muss...
Zu 7.3 schreib ich nochmal, wenn ichs ausprobiert habe.
Grüße von Horst
Unter PHP 7.3 wurde das Nutzen ungeprüfter Variablen eben nicht als Fehler angesehen und erzeugt höchstens eine (nicht ausgegebene) "Notice".
CPO+ soll ja eine "fully modded" Version sein, also eine, wo bereits Module und Modifikationen integriert sind.
Wenn Du also irgendwas für besonders sinnvoll hältst, dann kannst du das ja schreiben.
Es gibt mittlerweile so viele sinnvolle oder sinnlose Ergänzungen, dass ich gar nicht weiß, was benötigt wird.
Aber solche Gimmicks wie das nagelneue mod_dropzone sind schon ein riesiger Fortschritt...
Mein Testserver erlaubte bisher eben nur PHP bis 7.3, daher habe ich jetzt einen weiteren mit PHP 8.0 und 8.1 angemietet und kann da anfangen alles selbst auszutesten... dauert aber noch etwas...