Seite 1 von 1

PHP 7.3

Verfasst: Mi 4. Sep 2019, 17:51
von dermicha
Hallo zusammen,

da ich bisher nichts explizites finden konnte: läuft die 4.10 auch unter PHP 7.3 ohne Probleme? Hat das schon jemand so produktiv im Einsatz?

Vielen Dank

Michael

Re: PHP 7.3

Verfasst: Do 5. Sep 2019, 15:07
von Oldperl
Servus,

hab ich hier lokal laufen:
CONTENIDO_4.10.0_2019-09-05_15.59.52.jpg
CONTENIDO_4.10.0_2019-09-05_15.59.52.jpg (22.31 KiB) 6474 mal betrachtet
Bisher habe ich noch keine Probleme gehabt, wobei da natürlich der tägliche Gebrauch fehlt und ich auch noch nicht in allen Bereichen gearbeitet habe.

Gruß aus Franken

Ortwin

Re: PHP 7.3

Verfasst: Do 5. Sep 2019, 15:29
von dermicha
Vielen Dank!

Keine Warnings oder ähnliches im Log?

Produktiv hat das also noch niemand laufen?

Viele Grüße

Michael

Re: PHP 7.3

Verfasst: Do 5. Sep 2019, 15:36
von Oldperl
Servus,

nein, da ich eher mit meiner ConLite arbeite, um diese weiter für PHP 7.3 zu optimieren. Sorry... :roll:

PS: Gerade hatte ich ein Problem mit dem Teaser-Modul, kann keine Artikel im manuellen Tab hinzufügen unter PHP 7.3. Keine Ahnung ob das wirklich an PHP liegt, dazu muss ich 4.10 erst mal unter anderen Versionen von PHP vergleichen.

Gruß aus Franken

Ortwin

Re: PHP 7.3

Verfasst: Fr 6. Sep 2019, 12:06
von bodil
Diese Problem hatte ich bisher nur unter 7.3. Allerdings betreue ich nur diese eine Seite mit PHP 7.3, kann daher nicht einschätzen, ob es da wirklich einen Zusammenhang gibt:
viewtopic.php?f=118&p=180175#p180174

Re: PHP 7.3

Verfasst: Fr 6. Sep 2019, 17:42
von bodil
Den Zusammenhang scheint es tatsächlich zu geben:
https://ayesh.me/Upgrade-PHP-7.3#pcre2

Re: PHP 7.3

Verfasst: Mi 11. Sep 2019, 08:55
von rethus
Gerade Testweise eine 4.12 auf PHP 7.3 aktualisiert, und einige Fehler um die Ohren gehauen bekommen.

Vorwiegend waren das Deprecated Messages von PHP selbst, das "each()" deprecated ist, oder dass "count(): Parameter must be an array or an object that implements Countable". Zumindest 1x each() und 1xcount gingen von Contenido-Core-Dateien aus.

Wegen mangelnder Zeit bin ich dann erstmal auf 7.1 zurück.

Re: PHP 7.3

Verfasst: Do 12. Sep 2019, 09:27
von Oldperl
Servus,
rethus hat geschrieben:
Mi 11. Sep 2019, 08:55
Gerade Testweise eine 4.12 auf PHP 7.3 aktualisiert...
Wo hast Du die denn her? :wink:
Und wo kann ich diese 4.12 herunterladen? :lol:

Gruß aus Franken

Ortwin

Re: PHP 7.3

Verfasst: Do 12. Sep 2019, 12:25
von bodil
Was mir noch aufgefallen ist:
Mein einens CMS mit Contenido 4.10.0 und PHP 7.3 liefert vor allem auf der Startseite diesen Fehler, den ich vor dem Update noch nicht gesehen habe (und auch sonst von keinem System kenne):

Code: Alles auswählen

[11-Sep-2019 18:11:21 Europe/Berlin] PHP Warning:  Invalid argument supplied for foreach() in [...]/contenido/classes/class.session.php on line 226
Der Fehler tritt in derselben Sekunde immer dreifach auf.
Da die Seite trotzdem läuft, habe ich hier noch nicht geforscht.

Re: PHP 7.3

Verfasst: Do 12. Sep 2019, 15:15
von Oldperl
siehe :arrow: https://thisinterestsme.com/invalid-arg ... r-foreach/

Und dieser Fehler ist bei vielen Systemen bekannt, nur meist schon behoben. Einfach mal Tante G fragen.

Gruß aus Franken

Ortwin

Re: PHP 7.3

Verfasst: Fr 13. Sep 2019, 09:18
von Faar
Oldperl hat geschrieben:
Do 12. Sep 2019, 15:15
Und dieser Fehler ist bei vielen Systemen bekannt, nur meist schon behoben. Einfach mal Tante G fragen.
Und nicht nur bei Arrays, denn letzte Woche fand ich in einem käuflichen Wordpress-Theme :? einen Aufruf eine Funktion, die von einem anderen Plugin bereit gestellt wird, ohne mit if(function_exists()) zu prüfen, ob die Funktion überhaupt da ist.
PHP macht dann einen fatalen Fehler daraus und stoppt.
Kommt gut bei Themes die Geld kosten :motz:

Die Annahme, es wird schon ein Wert in einer Variablen sein oder ein Array oder eine Funktion vorhanden, ist ein häufiger Fehler bei Programmierern.
Quick&Dirty :roll:

Re: PHP 7.3

Verfasst: Mi 1. Jan 2020, 16:00
von rethus
@bodil: Ist ein Bug in der class.session.php. Wie du es fixt, siehe hier: viewtopic.php?f=115&t=43479&p=180678#p180678

Re: PHP 7.3

Verfasst: Sa 19. Dez 2020, 13:03
von lunsen_de
Hallo, da sich meine errorlog auch sehr schnell füllt mit:

Code: Alles auswählen

PHP Warning:  Invalid argument supplied for foreach() in ...../contenido/classes/class.session.php on line 226
habe ich den Beitrag
@bodil: Ist ein Bug in der class.session.php. Wie du es fixt, siehe hier: viewtopic.php?f=115&t=43479&p=180678#p180678
gelesen.
Allerdings wurde da geschrieben, dass davon abgeraten wird dieses Patch zu verwenden.

Ich verwende 4.10.1 mit PHP 7.3.25.
Hat denn jemand eine empfohlene Lösung um den Eintrag zu unterbinden oder Erfahrung mit dem Patch?

Grüß lunsen_de

Re: PHP 7.3

Verfasst: So 20. Dez 2020, 20:26
von xmurrix
Hallo lunsen_de,
...Hat denn jemand eine empfohlene Lösung um den Eintrag zu unterbinden oder Erfahrung mit dem Patch?...
Man müsste erst einmal herausfinden, was genau diese Fehlermeldung verursacht.

Der Fehler in class.session.php on line 226 sollte nicht vorkommen, da eine Zeile zuvor die Variable $l mittels eval() als eine Liste definiert und befüllt wird. Daher ist zu klären, warum die Variable $l eine Zeile später auf einmal keine Liste sein soll.

Code: Alles auswählen

...
                eval("\$l = array(); foreach(\$$var as \$k => \$v) {\$l[] = array(\$k,gettype(\$k),\$v);}");
                foreach ($l as $item) {
...
Beim Speichern der Session in CONTENIDO wird mit statischen Variablen und der Funktion eval() gearbeitet. Vermutlich ist die Kombination von beidem unter einer gewissen Konstellation (PHP Version, Zend Optimizer, IonCube, usw.) die Ursache für den Eintrag in der errorlog.txt.

Dass der Patch nicht ideal zu sein scheint, wurde im Beitrag entsprechend angemerkt. Vermutlich löst es das Problem, allerdings sollte man das gründlich testen. Bei mir ist der Fehler bisher noch nie aufgetaucht, daher habe ich auch keine Erfahrungsberichte dazu.

Gruß
xmurrix

Re: PHP 7.3

Verfasst: Di 22. Dez 2020, 08:58
von lunsen_de
Hallo, ich konnte das Problem jetzt identifizieren und die Fehlermeldung beseitigen.

Es war nicht ganz einfach es zu finden, hängt aber mit dem Systemwechsel (neue Webseite) und desn verwendeten Domains zusammen.

Kunde hatte eine Webseite auf Domain1.de mit Contenido 4.8.19 (PHP 5.6).
Jetzt wurde eine neue Seite erstellt mit Contenido 4.10.1 (PHP 7.3). Zudem hat sich der Kunde für eine neue Domain entschieden (Domain2.de).
Domain1.de hatte also die PHP Einstellung PHP 5.6 und die neue Domain2.de die Einstellung PHP 7.3.
Als wir die neue Seite aktiv geschaltet haben, löste also die neue Domain2.de auf das Root Verzeichnis auf, aber ebenso auch noch die alte Domain1.de.

Und genau da wurde die Fehlermeldung produziert. Beim Aufruf der alten Domain, z.B. über Google Einträge, wurde die Startseite geladen (also falsche baseref in dem Fall). Erst bei einem Klick auf z.B. die Navigation sprang die Seite auf die neue Domain.

Scheinbar führt der Aufruf der Seite über eine Domain mit veralteter PHP Version zu der Fehlermeldung.

Nachdem ich die alten Domains nicht mehr auf Root auflösen lies und diese weitergeleitet habe auf die neue Domain, waren die Fehlermeldungen verschwunden. Entdecken konnte ich das Verhalten erst nach Studium der Accesslogs und Abgleich der Zeiten der Fehlermeldung.

Grüße lunsen_de

PS: Vielleicht kann sich nochmal jemand mein Problem (Bug) beim Newsletter anschauen (Newsletter Probleme), da bin ich noch nicht weitergekommen.