Seite 1 von 1

Fehlermeldung functions.con.php on line 1053

Verfasst: Fr 9. Aug 2013, 18:19
von malsdgtac
Hallo,

ich habe gerade die 4.9.0-RC1 auf einem Webspace mit PHP 5.4.16 installiert. Ich bekomme nun öfters folgende Fehlermeldung:

Code: Alles auswählen

Warning: Invalid argument supplied for foreach() in /www/htdocs/.../contenido/includes/functions.con.php on line 1053
Ich habe dabei beobachtet, dass:
  • die Fehlermeldung 2 mal steht, wenn ich ein Layout speichere, welches als Standardlayout definiert ist
    Die Fehlermeldung steht nicht, wenn ich ein Layout speichere, das kein Standardlayot ist (bei gleichem Layout wie für das Standardlayout)
    Beim Speichern der Standardvorlage, wird die Fehlermeldung gleich dreimal angezeigt
    Beim Speichern von Vorlagen, die nicht die Standardvorlage ist, wird der Fehler nicht angezeigt (bei gleichem Layout und gleichen Modulen)
    Der Fehler wird immer beim Speichern von Artikeleigenschaften angezeigt, egal ob keine Vorlage ausgewählt ist, die Standardvorlage oder eine andere Vorlage ausgewählt ist
    Der Fehler wird auch angezeigt, wenn ich in der Artikelkonfiguration "keine Vorlage" auswähle

Re: Fehlermeldung functions.con.php on line 1053

Verfasst: Fr 9. Aug 2013, 19:32
von malsdgtac
Ich habe jetzt mal wegen anderer Probleme per .htaccess auf die PHP Version 5.3(.26) umgestellt - da kommt der Fehler nicht.

Leider scheint die Änderung der PHP Version aber keine gute Idee zu sein, es kommen einige andere Fehler.

Re: Fehlermeldung functions.con.php on line 1053

Verfasst: Fr 9. Aug 2013, 19:47
von malsdgtac
So jetzt wieder auf PHP 5.4.16 kommt sobald ich im Editor irgendwelchen Text speichere die Fehlermeldung

Code: Alles auswählen

Warning: Invalid argument supplied for foreach() in /www/htdocs/.../contenido/includes/functions.con.php on line 1077
Warning: Cannot modify header information - headers already sent by (output started at /www/htdocs/.../contenido/includes/functions.con.php:1077) in /www/htdocs/.../contenido/includes/include.con_editcontent.php on line 68
und der Editor geht nicht mehr auf.

Ich habe jetzt einfach mal in Zeile 1053 und 1077 ein

Code: Alles auswählen

if (is_array($arr)) {
...
}
rum getan, jetzt sind die Fehlermeldungen weg.

Vielleicht kann es sich aber trotzdem jemand ansehen?

Re: Fehlermeldung functions.con.php on line 1053

Verfasst: Mo 12. Aug 2013, 10:55
von xmurrix
Hallo smac,

die von dir beschriebenen Zeilen verwenden die Methode getIdsByWhereClause() der Klasse ItemCollection, siehe contenido/classes/genericdb/class.item.collection.php.

Wie man aus dem Inhalt der Funktion entnehmen kann, liefert es immer ein Array zurück, auch ein leeres, sofern die Abfrage keine Werte liefert.

Die foreach() Schleife kann auch mit einem leeren Array ausgeführt werden, das ist kein Problem. Aber bei dir scheint die Rückgabe kein Array zu sein, das sollte nicht sein. Kannst du bitte ItemCollection->getIdsByWhereClause() debuggen?

Eventuell ist es ein anderes Problem, habe hier was gefunden.
https://bugs.php.net/bug.php?id=53782

Vielleicht passiert auch bei dir genau das Gleiche, eine vorher abgefangene Ausnahme wird in foreach() aufgrund eines Bugs in PHP erneut behandelt?

Gruß
xmurrix

Re: Fehlermeldung functions.con.php on line 1053

Verfasst: Mo 26. Aug 2013, 10:30
von malsdgtac
Hallo xmurrix,

ich bin leider nicht früher dazu gekommen, mich darum zu kümmern. Das Problem ist mit der 4.9.0 auch behoben. Ich hab es mir gerade angeschaut, ich habe nun die Originaldatei am Laufen, und es gibt keine Fehler.

smac