moziloCMS Supportforum

moziloCMS => Hier klemmt es! => Thema gestartet von: Thorstn am 26. März 2022, 00:40:20

Titel: Fehlermeldungen bei Syntaxelementen PHP 8.1 / moz 2.0 Rev. 54
Beitrag von: Thorstn am 26. März 2022, 00:40:20
Bei meiner (derzeit offline via Localhost) genutzten Testumgebung moziloCMS 2.0 Rev. 54 bekomme ich unter PHP 8.1 Fehlermeldungen, wenn ich Eigene Syntaxelemente einsetze, und zwar:
Wenn diese nach dem Syntaxnamen keine Angabe {DESCRIPTION} oder {VALUE} beinhalten.

Beispiel:

In den Einstellungen (eigene Syntax-Elemente anlegen) gebe ich z.B. ein:
kontaktanfrage = Bei weiteren Fragen hierzu nehmen Sie bitte Kontakt mit uns auf.

Wenn ich dann in die Inhaltsseite die Syntax [kontaktanfrage] eintrage, würde ja normalerweise der Text erscheinen ( "Bei weiteren Fragen.... " ). Das tut er auch, allerdings mit Fehlermeldungen:

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in D:\xampp\htdocs\moz54\cms\Syntax.php on line 848

Deprecated: strpos(): Passing null to parameter #1 ($haystack) of type string is deprecated in D:\xampp\htdocs\moz54\cms\Syntax.php on line 860

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in D:\xampp\htdocs\moz54\cms\Syntax.php on line 877

Deprecated: str_replace(): Passing null to parameter #2 ($replace) of type array|string is deprecated in D:\xampp\htdocs\moz54\cms\Syntax.php on line 884



Dieses Problem erscheint nur unter PHP 8.1 (8.0 nicht getestet), unter PHP 7.4 erscheinen die Fehlermeldungen nicht.

Wenn ich die Benutzersyntax in den Einstellungen modifiziere mit einem "Dummy" (in diesem Falle DESCRIPTION), dann erscheint die Fehlermeldung unter PHP 8.1 nicht. Beispiel:
kontaktanfrage = <span class="{DESCRIPTION}">Bei weiteren Fragen hierzu nehmen Sie bitte Kontakt mit uns auf.</span>

In der Inhaltsseite wird die Syntax dann via [kontaktanfrage=|] eingefügt. Das funktioniert dann auch ohne Fehlermeldungen.

Das heißt also: In der Benutzersyntax (Einstellungen) muss zwingend (!) {DESCRIPTION} oder {VALUE} mit in die Angaben, sonst erscheint die Fehlermeldung.

Kann man da was gegen tun? Meines Erachtens liegt es an PHP 8.1
Titel: Antw:Fehlermeldungen bei Syntaxelementen PHP 8.1 / moz 2.0 Rev. 54
Beitrag von: laborix am 27. März 2022, 18:47:19
Zitat von: Thorstn am 26. März 2022, 00:40:20... moziloCMS 2.0 Rev. 54 bekomme ich unter PHP 8.1 Fehlermeldungen, wenn ich Eigene Syntaxelemente einsetze
...
Wenn diese nach dem Syntaxnamen keine Angabe {DESCRIPTION} oder {VALUE} beinhalten.
...
kontaktanfrage = Bei weiteren Fragen hierzu nehmen Sie bitte Kontakt mit uns auf.
Hi Thorstn,

bitte teste mal die unten angehängte neue "Syntax.php"-Datei. Dazu bitte das ZIP-Archvi entpacken und die enthaltene "Syntax.php"-Datei in den Ordner /cms/ kopieren und die dort enthaltene Datei einfach überschreiben.
Wichtig:
Im Webbrowser bitte vor dem Ausprobieren den Webbrowser Cache löschen, sonst klappt das nicht.

Zitat von: Thorstn am 26. März 2022, 00:40:20... Kann man da was gegen tun? Meines Erachtens liegt es an PHP 8.1 ...
Als moziloCMS 1.x entwickelt wurde war unter PHP so ziemlich alles erlaubt  ;D
Erst mit PHP 7.x wurde das erste Mal richtig auf saubere Programmierung geschaut, was nun mit jeder neuen PHP 8.x Version immer öfters zum Tragen kommt.
Titel: Antw:Fehlermeldungen bei Syntaxelementen PHP 8.1 / moz 2.0 Rev. 54
Beitrag von: Thorstn am 28. März 2022, 17:23:33
Super, das funktioniert mit der "neuen" Syntax.php!

Vielen Dank :-)
Titel: Antw:Fehlermeldungen bei Syntaxelementen PHP 8.1 / moz 2.0 Rev. 54
Beitrag von: laborix am 29. März 2022, 18:09:04
Danke für die Rückmeldung  :)
Wir werden das in die aktuelle moziloCMS Version übernehmen.