WBCE CMS Forum

WBCE CMS – Way Better Content Editing.

Du bist nicht angemeldet.

#1 16.01.2023 12:22:14

gottfried
Mitglied

Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Hallo!

Ich hab gerade von php 7.x auf 8.0 umstellen müssen wegen Strato. (Eigentlich hab ich 8.2 probiert, bin aber auf 8.0 rück)

Nun hab ich ein paar Probleme. Ich bin mittlerweile fast 68 und tu mir wohl manchmal wohl mit dem Denken schwer, vor allem wenn ich
auch noch eine Erkältung habe. So bitte ich euch um etwas Unterstützung :-) .

Meine Foldergallery ist ein "gewachsenes Teil". Aber die Problemchen sind wie gesagt wohl in der PHP Versionsumstellung begründet.
Nun mein erstes Problem
Was kann denn

2023-01-14T12:17:20+00:00 [Exception] There was an unknown exception: Call to undefined function mysql_client_encoding() in line (43) of /modules/foldergallery/admin/sync.php

sagen?

Kann ich die Zeile einfach löschen?

(vor allem, weil ich ja $OldMySqlEncoding gar nicht zu brauchen meine)

Beitrag geändert von gottfried (16.01.2023 12:53:34)

Offline

#2 16.01.2023 12:41:24

florian
Administrator

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Eigentlich hab ich 8.2 probiert, bin aber auf 8.0 rück

roll Wer lesen kann...

Ich in der Ankündigung schrieb:

Systemvoraussetzungen: WBCE CMS 1.5.4 ist freigegeben für PHP 7.4.14 bis PHP 8.1.x. Darunter oder darüber liegende PHP-Versionen werden nicht unterstützt.


Da es hier aber (erstmal) um Probleme mit einem Modul geht, habe ich die Frage in den entsprechenden Thread verschoben.

Meine Foldergallery ist ein "gewachsenes Teil".


Ich vermute mal, es ist eine uralte Version der Responsive FolderGallery.

Falls die fraglichen Zeilen lauten

//  Set the mySQL encoding to utf8
$oldMysqlEncoding = mysql_client_encoding();
mysql_set_charset('utf8',$database->db_handle);

So kannst Du diese wohl in der Tat löschen oder auskommentieren. Es werden dann aber garantiert weitere Fehler auftreten.

Beitrag geändert von florian (16.01.2023 12:54:37)


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#3 16.01.2023 13:21:07

gottfried
Mitglied

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Hallo Florian!

Also so was . (Seit Jahren tyrannisiert nun php die Welt mit ständigem Rumbasteln - wenn ich das gewußt hätte wär ich bei Basic geblieben :-))

meine FG ist ein von der 1.3 abgeleitetes Teil. Geht gut über die Jahre und php Versionen.

Nächstes Problem;

was könnte ich bei
2023-01-16T11:03:35+00:00 [Exception] There was an unknown exception: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, bool given in line (661) of /framework/class.database.php

tun? (in der foldergallery finde ich den Aufruf gar nicht

tritt bei der Reorganisation -filesystem mit Datenbank reorganisieren auf

Beitrag geändert von gottfried (16.01.2023 13:27:36)

Offline

#4 16.01.2023 13:50:43

florian
Administrator

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Nimms mir nicht übel, aber meine Motivation, zu versuchen eine uralte FG PHP-8-tauglich zu machen, hält sich sehr in Grenzen.

Du kannst bitte mal die /framework/class.database.php mit der Version aus diesem Post ersetzen. Dann sind evtl. etwas hilfreichere Fehlermeldungen im Errorlog.

Noch besser wäre es allerdings, wenn die Möglichkeit bestünde, auf eine "reguläre" und zeitgemäße der FG zu updaten. Wobei das natürlich problematisch sein kann, je mehr individuelle Anpassungen vorgenommen wurden, also bitte unbedingt zunächst auf einer Testinstanz ausprobieren.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#5 16.01.2023 14:28:34

gottfried
Mitglied

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Hallo Florian!

Natürlich verstehe ich, daß du da keine große Lust hast.

"Meine" FG verfügt aber über Fähigkeiten, die die vom Irast nie hatte z.B ein WYSYWIG Descriptionfeld, das es ermögkicht die "Thumbs" um ein großes bebildertes Textfeld zu gruppieren.

na ja - u.U hilft das weiter:

2023-01-16T12:03:29+00:00 [Visitor Request] ht tp://www.example.com/modules/foldergallery/admin/sync.php?page_id=23§ion_id=26
2023-01-16T12:03:29+00:00 [User Notice] /framework/class.database.php:[334] from /modules/foldergallery/admin/scripts/backend.functions.php:[257] database->query "STATEMENT: SELECT * FROM _mod_foldergallery_categories WHERE section_id=26 AND categorie="Struktur und Gefhl" AND parent="/kerstin-knappe/Grafik" LIMIT 1;"
2023-01-16T12:03:29+00:00 [Exception] There was an unknown exception: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, bool given in line (762) of /framework/class.database.php

u.U liegt das Problem ja am Gefhl ?

nebenbei hab ich in verschiedenen domains und verschiedenen modulen Probleme mit den Sonderzeichen nach Umstellen der PHP Version.
Die sind mir aber erst mal nicht so wichtig, weil nur seltsam aussieht aber dargestellt wird.

Beitrag geändert von florian (16.01.2023 15:16:57)

Offline

#6 16.01.2023 15:23:18

florian
Administrator

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

u.U liegt das Problem ja am Gefhl ?

Das könnte in der Tat sein. Würde auch zu den geschilderten Umlautproblemen und dem vorherigen mysql_client_encoding(); passen.
Steht im Errorlog tatsächlich §ion oder &section_id ?

Da muss man jetzt aber immer tiefer einsteigen und schauen, wie die Queries zusammengesetzt werden usw. Und das ist von außen nicht möglich. Eventuell musst Du da gegen Münzeinwurf jemanden Professionelles beauftragen.


Code allein macht nicht glücklich. Jetzt spenden!

Offline

#7 16.01.2023 15:59:01

gottfried
Mitglied

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Hallo Florian!

Im ErrorLogViewer steht tatsächlich §ion.

Bin Rentner und wir haben gerade Inflation. Münzeinwurf geht eher nicht.

Gibt es allgemein Probleme mit Zeichensatz latin1 ?

Kann man u.U eine Systemvariable setzen für Zeichensatz?

:-)

Offline

#8 16.01.2023 16:34:37

webbird
Administrator

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

gottfried schrieb:

2023-01-16T11:03:35+00:00 [Exception] There was an unknown exception: mysqli_fetch_array(): Argument #1 ($result) must be of type mysqli_result, bool given in line (661) of /framework/class.database.php

Diese Meldung entsteht in der Regel dann, wenn das DB-Statement ungültig war. Dann gibt es kein Resultset und alle Funktionen, die mit einem solchen arbeiten, laufen zwangsläufig auf Fehler. Und ja, es kann an Umlauten und Sonderzeichen liegen. Es ist wichtig, dass die Einstellung in der Datenbank und die im WBCE bzw. im Modul übereinstimmen. Wenn also in der DB UTF8 verwendet wird, muss auch die Datenbankverbindung UTF8 benutzen. Du musst also mit einem passenden Tool schauen, welche "collation" bei der Datenbank bzw. explizit bei der betroffenen Tabelle verwendet wird. Du kannst dann entweder die collation ändern, oder alternativ den DB_CHARSET in der config.php.

define('DB_CHARSET', 'utf8');

Meine Empfehlung wäre, dafür zu sorgen, dass auch die DB überall UTF8 verwendet, statt die config.php zu ändern.

Beitrag geändert von webbird (16.01.2023 16:34:54)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#9 16.01.2023 16:43:17

webbird
Administrator

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

gottfried schrieb:

2023-01-14T12:17:20+00:00 [Exception] There was an unknown exception: Call to undefined function mysql_client_encoding() in line (43) of /modules/foldergallery/admin/sync.php

Die mysql-Extension gibt es in PHP 8.x nicht mehr, nur noch PDO oder mysqli. Daher gibt es bei Aufruf dieser Methode eine Exception, sie existiert halt wirklich nicht mehr. Das gilt für alle Methoden oder Konstanten, die mit mysql* ohne i dahinter anfangen. (Zum Beispiel auch MYSQL_ASSOC.)

Für mysql_set_charset() gibt es in der Tat eine entsprechende Funktion in mysqli:
https://www.php.net/manual/de/mysqli.set-charset.php

Insofern könntest Du mal versuchen, ob es Dir bei Deinem Zeichensatzproblem hilft, die Zeile mit mysql_set_charset() durch mysqli_set_charset() zu ersetzen.

Im übrigen ist es für die Community schwierig, Support für ein sehr altes Modul zu leisten, dessen Quellcode nicht bekannt ist. Da werden wir uns zwangsläufig von einem Fehler zum nächsten hangeln. Zudem ist zu erwarten, dass mit dem nächsten Wechsel auf PHP 8.2 wieder "alles" kaputt ist.

Beitrag geändert von webbird (16.01.2023 16:44:05)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#10 16.01.2023 16:43:20

gottfried
Mitglied

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Hallo Webbird!

Ich kann mich erinnern, daß vor paar Jahren schon mal Zeichensatzprobleme gab. (von php 6 auf 7?)

Gibt es eine Möglichkeit bzw script einen Datenbankexport oder eine Datenbank von latin1 in UTF8 zu konvertieren? (latin1 ist wohl jetzt oder früher oder später outdated)

:-)

Offline

#11 16.01.2023 16:48:09

webbird
Administrator

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Das ist normalerweise nicht nötig. Du brauchst einen Texteditor, der UTF8 kann. Dann speicherst Du Deinen DB-Dump als UTF8 und sorgst dafür, dass bei "collation" entweder überall "utf8_general_ci" drin steht, oder Du schmeißt die individuellen Einstellungen der einzelnen Tabellen ganz weg und sorgst dafür, dass die DB selbst so eingestellt ist, dass Tabellen automatisch mit utf8_general_ci angelegt werden. Wichtig ist, dass die Umlaute im DB-Dump im Editor "normal" aussehen.

Zeichensatzprobleme wird es immer geben, so lange es unterschiedliche Zeichensätze gibt. Daher muss man dafür sorgen, dass man bei einem Zeichensatz bleibt. Würde Microsoft nicht ständig alles anders machen als andere, wäre es noch einfacher...

P.S.: Es gab kein PHP 6, das wäre dann 5 auf 7 gewesen.

Beitrag geändert von webbird (16.01.2023 16:48:42)


Ich habe eine Amazon-Wishlist. wink Oder spende an das Projekt.
Ich kann, wenn ich will, aber wer will, dass ich muss, kann mich mal

Offline

#12 16.01.2023 17:09:54

gottfried
Mitglied

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Hallo webbird!

War dann wohl 5 auf 7.

Ja, danke! Ich geb in den nächsten Tagen Nachricht ob das geklappt hat ! :-)

Offline

#13 17.01.2023 12:38:00

gottfried
Mitglied

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Hallo!


Also mysql vorsichtig ersetzen durch mysqli

Kann das sein, daß die Konstante MYSQL_ASSOC nicht mehr unterstützt wird und ich in einem fetchRow MYSQLI_ASSOC verwenden muß ?

Danke Florian und Webbird für die Denkhilfe. Muß mein Hirn einschalten. :-))

Beitrag geändert von gottfried (17.01.2023 13:33:01)

Offline

#14 17.01.2023 14:29:50

florian
Administrator

Re: Upgrade von 1.33 auf 1.54 Problem wegen PHP 8+ FG

Kann das sein, daß die Konstante MYSQL_ASSOC nicht mehr unterstützt wird und ich in einem fetchRow MYSQLI_ASSOC verwenden muß ?

Ja.

Bitte ruhig auch die Forensuche bemühen, viele Fragen wurden bereits mehrfach beantwortet...


Code allein macht nicht glücklich. Jetzt spenden!

Offline

Fußzeile des Forums

up