Undefined index a0

Diskussion zum Formular-Modul für ConPresso 4
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 851
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Undefined index a0

Beitrag von hscha »

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?

Systemdaten: CPO 4.1.6+1, php-Version 7.4

Grüße von Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

Hallo Horst,

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.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

Konkreter Lösungsvorschlag:

Wenn Du die Stelle gefunden hast steht da sicher sowas wie

Code: Alles auswählen

if(arrayName['a0'] == 'WasAuchImmer')  { ...
Das muss man dann erweitern zu

Code: Alles auswählen

if(isset(arrayName['a0']) && arrayName['a0'] == 'WasAuchImmer')  { ...
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)
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 851
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Undefined index a0

Beitrag von hscha »

MarkusR hat geschrieben: 09.02.2022 12:21 Konkreter Lösungsvorschlag:

Wenn Du die Stelle gefunden hast steht da sicher sowas wie

Code: Alles auswählen

if(arrayName['a0'] == 'WasAuchImmer')  { ...
Das muss man dann erweitern zu

Code: Alles auswählen

if(isset(arrayName['a0']) && arrayName['a0'] == 'WasAuchImmer')  { ...
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)
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

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?

Passiert das auch unter PHP 7.3?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

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.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

Du könntest in includes/actions.inc.php vor der Zeile

Code: Alles auswählen

// Moduleinstellungen speichern (neue Version mit automatischem Einlesen neuer Variablen)************
noch diese ergänzen

Code: Alles auswählen

foreach($mailArr AS $mVal) initVar($activeModules[$directory][$mVal], $activeModules[$directory][$mVal]);
ungestestet!
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 851
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Undefined index a0

Beitrag von hscha »

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
Grüße von Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

Ja, mit PHP 7.4 wirst Du davon noch Dutzende sehen.

Die im Log gespeicherten Fehler sind eben nur die Spitze des Eisbergs.

Wichtig ist es die Fehlerausgabe direkt auf der Seite zu haben, da diese ausführlicher ist und nicht nur beim Mailversand die Fehler zeigt.

Ich habe da schon Wochen dran gesessen...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 851
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Undefined index a0

Beitrag von hscha »

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
Einen guten Donnerstag wünscht
Horst
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

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.
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 851
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Undefined index a0

Beitrag von hscha »

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
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

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...
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
MarkusR
Handbuchversteher
Beiträge: 7557
Registriert: 01.01.1970 02:00
Hat sich bedankt: 118 Mal
Danksagung erhalten: 943 Mal

Re: Undefined index a0

Beitrag von MarkusR »

MarkusR hat geschrieben: 09.02.2022 20:17Dann müsstest Du aber auch "Bestätigungen" aktiviert haben...
Das sollten wir mal klären.
Hast Du das ("Bestätigung aktivieren") mit "Ja" aktiviert?

Falls ja, hast Du auch die entsprechenden Häkchen für die Empfänger gesetzt?
Ciao Markus
ConPresso-Module

Kein Support per PN!!! Für Fragen und Diskussionen ist das Forum da!

Succi recentis officinalis
Hochwertige Kräutersäfte und -Öle
Benutzeravatar
hscha
ConPresso-Experte
Beiträge: 851
Registriert: 22.02.2006 23:00
Wohnort: Berlin
Hat sich bedankt: 226 Mal
Danksagung erhalten: 33 Mal

Re: Undefined index a0

Beitrag von hscha »

Hatte ich bislang nicht!
Ich habe nur die Bestätigungsmail aktiviert.
Dann probiere ich das aus!
Grüße von Horst