CONTENIDO unter PHP8 und MariaDB10
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Servus,
es hat mit der Verarbeitung in PHP und den (Grund-)Einstellungen der Datenbank zu tun. Ich habe diesen Fehler bereits mehrmals unter PHP8.x und einem aktuellen MySQL-Server gehabt, gerade wenn ich ConLite/Contenido geupt habe, und dabei die alten Encodings der DB übernommen wurden.
Helfen kann die Änderung des Encodings der Tabellenspalte in der DB in der gesucht wird. Alle genutzten Strings in UTF-8, sowohl der Query als auch die Spalte(n) lässt den Fehler verschwinden.
Gruß aus Franken
Ortwin
es hat mit der Verarbeitung in PHP und den (Grund-)Einstellungen der Datenbank zu tun. Ich habe diesen Fehler bereits mehrmals unter PHP8.x und einem aktuellen MySQL-Server gehabt, gerade wenn ich ConLite/Contenido geupt habe, und dabei die alten Encodings der DB übernommen wurden.
Helfen kann die Änderung des Encodings der Tabellenspalte in der DB in der gesucht wird. Alle genutzten Strings in UTF-8, sowohl der Query als auch die Spalte(n) lässt den Fehler verschwinden.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 105
- Registriert: Do 25. Jul 2019, 16:08
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Sorry, ich lese das erst jetzt...
Wie genau habe ich das zu verstehen?
Wie genau habe ich das zu verstehen?
---
Munterbleiben... Bernhard
Munterbleiben... Bernhard
Re: CONTENIDO unter PHP8 und MariaDB10
Hallo Bernhard,
bin mal so frei und antworte dir.
Zum Fehler:
Zum Fehler:
Wenn man im Frontend die Suche "李小龍 / 李小龙" (Bruce Lee) absetzt, wirst du diesen Fehler bekommen.
Es ist ratsam, die Kollation der Datenbank-Verbindung und die der Tabellen/Tabellenfelder gleich zu halten, vor allem in Feldern, in denen gesucht wird.
Über phpMyAdmin kannst du die Kollation vom Feld 'keywords' in Tabelle 'con_keywords' umstellen. Das sollte kein Risiko sein, da sich die Kollation auf die Sortierung auswirkt und nicht den Zeichensatz der Inhalte ändert. Dennoch wäre eine vorherige Sicherung der Tabelle ratsam.
Ich habe bisher gute Erfahrungen mit der Kollation 'utf8_general_ci' gemacht, sowohn mit der Datenbankverbindung als auch in Tabellen/Tabellenfeldern. Anscheinend ist aber bei dir die Kollation der Datenbankverbindung 'utf8mb3_general_ci', daher kannst du es damit probieren.
Gruß
xmurrix
bin mal so frei und antworte dir.
Zum Fehler:
Standardmäßig ist die Frontend-Suche in CONTENIDO auf "regexp" eingestellt und da hat anscheinend jemand eine Suche durchgeführt, bei der der eingegebene Text Sonderzeichen enthält, die als Sonderzeichen in regulären Ausdrücken verwendet werden (. \ + * ? usw.). Das sollte man sich näher ansehen und entsprechend in der Suche lösen....PHP Fatal error: Uncaught mysqli_sql_exception: Regex error 'quantifier does not follow a repeatable item at offset 12'...
Zum Fehler:
Die Suche geht auf die Tabelle 'con_keywords' und anscheinend ist die Kollation der Datenbankverbindung 'utf8mb3_general_ci' und die des Feldes 'keywords' auf 'latin1_swedish_ci' eingestellt....PHP Fatal error: Uncaught mysqli_sql_exception: Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8mb3_general_ci,COERCIBLE) for operation 'regexp'...
Wenn man im Frontend die Suche "李小龍 / 李小龙" (Bruce Lee) absetzt, wirst du diesen Fehler bekommen.
Es ist ratsam, die Kollation der Datenbank-Verbindung und die der Tabellen/Tabellenfelder gleich zu halten, vor allem in Feldern, in denen gesucht wird.
Über phpMyAdmin kannst du die Kollation vom Feld 'keywords' in Tabelle 'con_keywords' umstellen. Das sollte kein Risiko sein, da sich die Kollation auf die Sortierung auswirkt und nicht den Zeichensatz der Inhalte ändert. Dennoch wäre eine vorherige Sicherung der Tabelle ratsam.
Ich habe bisher gute Erfahrungen mit der Kollation 'utf8_general_ci' gemacht, sowohn mit der Datenbankverbindung als auch in Tabellen/Tabellenfeldern. Anscheinend ist aber bei dir die Kollation der Datenbankverbindung 'utf8mb3_general_ci', daher kannst du es damit probieren.
Gruß
xmurrix
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
-
- Beiträge: 105
- Registriert: Do 25. Jul 2019, 16:08
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Danke für die ausführliche Antwort.
Tatsächlich sind alle Tabellen auf "latin1_swedish_ci" eingestellt, außer "con_pifa_kontakt_allgemein"; diese Tabelle ist auf "utf8mb3_general_ci" eingestellt.
Ganz unten bei "Gesamt" steht "utf8mb4_general_ci".
Wie das zustande kam, weiß ich nicht. Bewußt habe ich nichts geändert.
Allerdings weiß ich nicht, wie ich das sinnvoll anpassen kann. Das ist für mich "Kisuaheli rückwärts"...
Tatsächlich sind alle Tabellen auf "latin1_swedish_ci" eingestellt, außer "con_pifa_kontakt_allgemein"; diese Tabelle ist auf "utf8mb3_general_ci" eingestellt.
Ganz unten bei "Gesamt" steht "utf8mb4_general_ci".
Wie das zustande kam, weiß ich nicht. Bewußt habe ich nichts geändert.
Allerdings weiß ich nicht, wie ich das sinnvoll anpassen kann. Das ist für mich "Kisuaheli rückwärts"...
---
Munterbleiben... Bernhard
Munterbleiben... Bernhard
-
- Beiträge: 4256
- Registriert: Do 30. Jun 2005, 22:56
- Wohnort: Eltmann, Unterfranken, Bayern
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Hallo ihr zwei,
wobei Kisuaheli ein schöne Sprache sein soll.
Und danke @xmurrix für die wirklich ausführliche Antwort, besser hätte ich es nicht erklären können.
@Bernhard, eventuell einfach mal den Nerd Deines Vertrauens fragen, ob er Dir diese Anpassungen mal machen würde.
Gruß aus Franken
Ortwin
wobei Kisuaheli ein schöne Sprache sein soll.
Und danke @xmurrix für die wirklich ausführliche Antwort, besser hätte ich es nicht erklären können.
@Bernhard, eventuell einfach mal den Nerd Deines Vertrauens fragen, ob er Dir diese Anpassungen mal machen würde.
Gruß aus Franken
Ortwin
ConLite 2.1, alternatives und stabiles Update von Contenido 4.8.x unter PHP 7.x - Download und Repo auf Gitport.de
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
phpBO Search Advanced - das Suchwort-Plugin für CONTENIDO 4.9
Mein Entwickler-Blog
-
- Beiträge: 84
- Registriert: Di 10. Jan 2006, 19:28
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Hallo Gemeinde,
es gibt ein Problem bei der Installation des Advanced Mod Rewrite im Plugin Manager. Es wird nicht installiert, sondern produziert eine weiße Seite und folgende Fehlermeldung:
Systeminfos:
Neuinstallation 4.10.1 Develop mit Mandant, ohne Demo-Site
Installierte PHP-Version 8.1.18
Datenbankserver-Version 8.0.32
Der Primärschlüssel idpluginrelation ist in der DB auf AUTO_INCREMENT gesetzt
Weiß jemand Rat?
Grüße
Michael
es gibt ein Problem bei der Installation des Advanced Mod Rewrite im Plugin Manager. Es wird nicht installiert, sondern produziert eine weiße Seite und folgende Fehlermeldung:
Code: Alles auswählen
PHP Fatal error: Uncaught mysqli_sql_exception: Duplicate entry '2' for key 'con_plugins_rel.PRIMARY'
Neuinstallation 4.10.1 Develop mit Mandant, ohne Demo-Site
Installierte PHP-Version 8.1.18
Datenbankserver-Version 8.0.32
Der Primärschlüssel idpluginrelation ist in der DB auf AUTO_INCREMENT gesetzt
Weiß jemand Rat?
Grüße
Michael
-
- Beiträge: 84
- Registriert: Di 10. Jan 2006, 19:28
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Es gibt auch Probleme mit dem Modul XML-Sitemap. Nach einem Update von 4.9.12 auf 4.10.1-develop (Mysql 5.7.38) und Umstellung von PHP 7.4 auf 8.1 wird die automatische Aktualisierung der XML-Datei nicht mehr durchgeführt. Gehe ich im Contenido im entsprechenden Artikel auf den Reiter "Editor", gibt es eine weiße Seite. Klicke ich nochmal auf "Editor", wird dieser Text ausgegeben: job was already executed within last 23h.
Im Errorlog steht es diese Meldung:
EDIT: Da war ich etwas voreilig, ich hatte eine alte Version im Einsatz. Aktuelle Version läuft problemlos.
Grüße
Michael
Im Errorlog steht es diese Meldung:
Code: Alles auswählen
PHP Fatal error: Uncaught TypeError: Unsupported operand types: cUriBuilderMR * int
Grüße
Michael
Zuletzt geändert von mikedreissig am Sa 29. Apr 2023, 15:47, insgesamt 3-mal geändert.
-
- Beiträge: 105
- Registriert: Do 25. Jul 2019, 16:08
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Eigentlich bin ich der Nerd meines geringsten Mißtrauens. Aber in diesem Fall bin sogar ich ratlos...
---
Munterbleiben... Bernhard
Munterbleiben... Bernhard
Re: CONTENIDO unter PHP8 und MariaDB10
Das dachte ich mir auch, dass das noch aus einer alten Version stammen müsste.mikedreissig hat geschrieben: ↑Fr 28. Apr 2023, 18:14EDIT: Da war ich etwas voreilig, ich hatte eine alte Version im Einsatz. Aktuelle Version läuft problemlos.
Fliegt der Bauer übers Dach, ist der Wind weißgott nicht schwach.
Re: CONTENIDO unter PHP8 und MariaDB10
Hallo, ich meine letztes Installation (4.10.1 dev), welche mit PHP 8.0 keine Fehler erzeugt hat, mal probeweise auf PHP 8.2 umgestellt.
Sofort füllt sich die Errorlog (massiv) bei jedem Klick im Backend mit unzähligen Fehlern (immer die selben Einträgen):
und
Die deprecatedlog.txt füllt sich massiv mit:
Vielleicht hilft das ja bei der Weiterentwicklung.
Grüße Lars
Sofort füllt sich die Errorlog (massiv) bei jedem Klick im Backend mit unzähligen Fehlern (immer die selben Einträgen):
Code: Alles auswählen
...
[05-May-2023 13:22:30 UTC] PHP Deprecated: Function utf8_decode() is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/contenido/classes/class.i18n.php on line 140
[05-May-2023 13:22:30 UTC] PHP Deprecated: Function utf8_decode() is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/contenido/classes/class.i18n.php on line 140
[05-May-2023 13:22:30 UTC] PHP Deprecated: Function utf8_decode() is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/contenido/classes/class.i18n.php on line 140
[05-May-2023 13:22:30 UTC] PHP Deprecated: Function utf8_decode() is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/contenido/classes/class.i18n.php on line 140
[05-May-2023 13:22:30 UTC] PHP Deprecated: Function utf8_decode() is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/contenido/classes/class.i18n.php on line 140
[05-May-2023 13:22:30 UTC] PHP Deprecated: Function utf8_decode() is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/contenido/classes/class.i18n.php on line 140
...
Code: Alles auswählen
...
[05-May-2023 13:25:56 UTC] PHP Deprecated: Creation of dynamic property Smarty_Internal_Extension_Handler::$_foreach is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/contenido/plugins/smarty/smarty_source/sysplugins/smarty_internal_extension_handler.php on line 182
[05-May-2023 13:25:56 UTC] PHP Deprecated: Creation of dynamic property Smarty_Variable::$do_else is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/cms/cache/templates_c/6d59d28c80955e642ce1222a91010fa9ff4a109e_0.file.get.tpl.php on line 30
[05-May-2023 13:25:56 UTC] PHP Deprecated: Creation of dynamic property Smarty_Internal_Template::$compiled is deprecated in /var/www/vhosts/web25.de/httpdocs/2024/contenido/plugins/smarty/smarty_source/sysplugins/smarty_internal_template.php on line 719
...
Code: Alles auswählen
...
Deprecated call: formatToDate() [class.date.php(188)]: "The function `strftime()` is deprecated as of PHP 8.1.0, and the passed format string was detected as a `strftime()` format. The `date()` function will be used as a fallback, but without localization support."
formatToDate() called in file class.content.type.date.php(260)
_formatDate() called in file class.content.type.date.php(91)
__construct() called in file class.content.type.teaser.php(409)
_fillTeaserTemplateEntry() called in file class.content.type.teaser.php(295)
generateTeaserCode() called in file include.front_content.php(738) : eval()'d code(120)
{closure}() called in file include.front_content.php(738) : eval()'d code(121)
eval() called in file include.front_content.php(738)
include() called in file front_content.php(43)
Deprecated call: formatToDate() [class.date.php(188)]: "The function `strftime()` is deprecated as of PHP 8.1.0, and the passed format string was detected as a `strftime()` format. The `date()` function will be used as a fallback, but without localization support."
formatToDate() called in file class.content.typ
...
Grüße Lars
-
- Beiträge: 105
- Registriert: Do 25. Jul 2019, 16:08
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Das mit strftime() ist bekannt...
Und die vielen Deprecated Meldungen (das sind keine Fehlermeldungen im Sinn von Fehler oder Error, sondern "nur" Hinweise) kannst Du abstellen, indem Du in der Datei
/data/config/production/config.misc.php
die Zeile 171 von:
änderst in:
Und die vielen Deprecated Meldungen (das sind keine Fehlermeldungen im Sinn von Fehler oder Error, sondern "nur" Hinweise) kannst Du abstellen, indem Du in der Datei
/data/config/production/config.misc.php
die Zeile 171 von:
Code: Alles auswählen
$cfg['php_error_reporting'] = E_ALL & ~(E_STRICT | E_NOTICE);
Code: Alles auswählen
$cfg['php_error_reporting'] = E_ALL & ~(E_STRICT | E_NOTICE | E_DEPRECATED | E_WARNING);
Zuletzt geändert von Bernhard_4711 am Sa 6. Mai 2023, 10:03, insgesamt 1-mal geändert.
---
Munterbleiben... Bernhard
Munterbleiben... Bernhard
-
- Beiträge: 105
- Registriert: Do 25. Jul 2019, 16:08
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Noch etwas:
Durchsuche bitte alle Dateien .htaccess (der Punkt am Anfang ist Absicht, die Dateien heißen wirklich so!) auf die veralteten Einträge oder oder (manchmal wird deny groß und manchmal klein geschrieben!) und ändere alles in
Durchsuche bitte alle Dateien .htaccess (der Punkt am Anfang ist Absicht, die Dateien heißen wirklich so!) auf die veralteten Einträge
Code: Alles auswählen
deny
Code: Alles auswählen
order deny,allow
Code: Alles auswählen
deny from all
Code: Alles auswählen
# Prevent access to this folder
Require all denied
---
Munterbleiben... Bernhard
Munterbleiben... Bernhard
-
- Beiträge: 84
- Registriert: Di 10. Jan 2006, 19:28
- Kontaktdaten:
Re: CONTENIDO unter PHP8 und MariaDB10
Hallo Gemeinde,
ich habe bei einem Projekt Probleme mit der Contenido Statistik. Nach dem Update auf PHP 8.1 werden deutlich weniger Klicks angezeigt, obwohl beim Provider im Access-Log weiterhin die ungefähr gleichen Klicks protokolliert werden.
System:
Update auf 4.10.1-develop
PHP version 8.1.18
Databank Mysql 5.7.41-log
Provider: IONOS
Weiß jemand Rat?
Grüße
Michael
ich habe bei einem Projekt Probleme mit der Contenido Statistik. Nach dem Update auf PHP 8.1 werden deutlich weniger Klicks angezeigt, obwohl beim Provider im Access-Log weiterhin die ungefähr gleichen Klicks protokolliert werden.
System:
Update auf 4.10.1-develop
PHP version 8.1.18
Databank Mysql 5.7.41-log
Provider: IONOS
Weiß jemand Rat?
Grüße
Michael
Re: CONTENIDO unter PHP8 und MariaDB10
Hallo Michael,mikedreissig hat geschrieben: ↑Mo 8. Mai 2023, 18:29ich habe bei einem Projekt Probleme mit der Contenido Statistik. Nach dem Update auf PHP 8.1 werden deutlich weniger Klicks angezeigt, obwohl beim Provider im Access-Log weiterhin die ungefähr gleichen Klicks protokolliert werden.
kannst du das Problem etwas näher definieren, werden die Klicks nicht in der Datenbank gespeichert oder werden sie nicht korrekt angezeigt?
Die Funktionalität des Aufzeichnens eines Seitenaufrufs hat sich meines Wissens nicht geändert, aber der Bereich rund um die Anzeige der Statistik, die hat auch zum Teil komplexe Abfragen, da kann es sein, dass es da noch Probleme gibt.
Ein anderer Grund wäre z. B., dass Browser immer mehr die HTTP Header "HTTP_DNT" (Do-Not-Track header) mitschicken, falls so ein HPTT-Header vorkommt, wird auch nichts aufgezeichnet.
Ob sich die Do-Not-Track header auch in der Access-Log wiederspiegelt, müsstest du mit dem Provider klären.
Viele Grüße
Murat
CONTENIDO Downloads: CONTENIDO 4.10.1
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
CONTENIDO Links: Dokumentationsportal, FAQ, API-Dokumentation
CONTENIDO @ Github: CONTENIDO 4.10 - Mit einem Entwicklungszweig (develop-branch), das viele Verbesserungen/Optimierungen erhalten hat und auf Stabilität und Kompatibilität mit PHP 8.0 bis 8.2 getrimmt wurde.
Re: CONTENIDO unter PHP8 und MariaDB10
Hallo Bernhard,
danke für die Infos.
Gibt es schon etwas zum Problem mit strftime()?
Ich habe die Warnungen abgestellt (das kannte ich auch schon), allerdings ist es doch sicher von Vorteil, wenn der Grund der Warnungen beseitigt wird. Ich sehe mich hier als Tester mit nicht so großen Programmierkenntnissen. Ich versuche hier mein Bestes zur Weiterentwicklung beizutragen, daher nicht falsch verstehen.
Bei den .htaccess Dateien habe ich nur die beiden in den data Ordnern gefunden (auf root Ebene und in cms) unde den Inhalt angepasst. Habe ich noch eine übersehen? Kannst du kurz erläutern, was der ursprüngliche Inhalt für Fehler verursacht hat bzw. was jetzt damit verbessert wird?
Grüße Lars
danke für die Infos.
Gibt es schon etwas zum Problem mit strftime()?
Ich habe die Warnungen abgestellt (das kannte ich auch schon), allerdings ist es doch sicher von Vorteil, wenn der Grund der Warnungen beseitigt wird. Ich sehe mich hier als Tester mit nicht so großen Programmierkenntnissen. Ich versuche hier mein Bestes zur Weiterentwicklung beizutragen, daher nicht falsch verstehen.
Bei den .htaccess Dateien habe ich nur die beiden in den data Ordnern gefunden (auf root Ebene und in cms) unde den Inhalt angepasst. Habe ich noch eine übersehen? Kannst du kurz erläutern, was der ursprüngliche Inhalt für Fehler verursacht hat bzw. was jetzt damit verbessert wird?
Grüße Lars