Seite 2 von 3

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 19.06.2025 22:32
von LukeWCS
Habe den Dump untersucht und das hat meine Vermutung bestätigt: entweder beim Backup oder beim Restore gab es ein Problem und zwar bei der Kodierung.

Beispiel das Wort "Dämm-Matte", das hätte im Dump (UTF8) auch exakt so angezeigt werden müssen, wenn man den z.B. in Notepad++ öffnet.

Tatsächlich wird es im Dump bei UTF8 Kodierung aber als

Code: Alles auswählen

Dämm-Matte
angezeigt und in ANSI wird es so dargestellt:

Code: Alles auswählen

Dämm-Matte
Für das "ä" werden also 4 Bytes verwendet, was aber normal nur 2 Bytes sein sollten. Und darin liegt das Problem und bringt unserialize() offensichtlich aus dem Konzept, weil die Daten in einem ungültigen Format vorliegen.

Das wäre jetzt also mal die sekundäre Ursache, warum die Meldungen in phpBB auftreten: weil die Daten bereits in der DB fehlerhaft vorhanden sind. Und die primäre Ursache ist beim Backup/Restore zu suchen, da muss das Problem entstanden sein.

Eine simple Lösung habe ich dafür nicht.

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 20.06.2025 07:11
von hausmann
LukeWCS hat geschrieben: 19.06.2025 22:32 Eine simple Lösung habe ich dafür nicht.
Schade, aber ganz lieben Dank für Deine Hilfe.

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 21.06.2025 16:46
von cpg
Moin,

es können in der Datenbank die Zeichen geändert werden nach diesem Muster:

Code: Alles auswählen

UPDATE phpbb3_posts SET post_text = REPLACE(post_text, 'ä', 'ä') WHERE post_text LIKE '%ä%';
Beispiel für post_text und den Buchstaben "ä".

Das ist aber ein mühevolles Unterfangen und es müsste ja für alle Fälle durchgeführt werden, wo Fehler sind.

Gruß
cpg

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 21.06.2025 17:25
von hausmann
Nachfolgender Code habe ich schon drüber laufen lassen:

Code: Alles auswählen

UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ß', 'ß') WHERE post_text LIKE '%ß%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, '´', "'") WHERE post_text LIKE '%´%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ä', 'ä') WHERE post_text LIKE '%ä%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ö', 'ö') WHERE post_text LIKE '%ö%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'ü', 'ü') WHERE post_text LIKE '%ü%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'Ä', 'Ä') WHERE post_text LIKE '%Ä%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'Ö', 'Ö') WHERE post_text LIKE '%Ö%';
UPDATE phpbb_posts SET post_text = REPLACE(post_text, 'Ü', 'Ü') WHERE post_text LIKE '%Ü%';

UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ß', 'ß') WHERE post_subject LIKE '%ß%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, '´', "'") WHERE post_subject LIKE '%´%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ä', 'ä') WHERE post_subject LIKE '%ä%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ö', 'ö') WHERE post_subject LIKE '%ö%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'ü', 'ü') WHERE post_subject LIKE '%ü%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'Ä', 'Ä') WHERE post_subject LIKE '%Ä%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'Ö', 'Ö') WHERE post_subject LIKE '%Ö%';
UPDATE phpbb_posts SET post_subject = REPLACE(post_subject, 'Ü', 'Ü') WHERE post_subject LIKE '%Ü%';

UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ß', 'ß') WHERE user_sig LIKE '%ß%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, '´', "'") WHERE user_sig LIKE '%´%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ä', 'ä') WHERE user_sig LIKE '%ä%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ö', 'ö') WHERE user_sig LIKE '%ö%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'ü', 'ü') WHERE user_sig LIKE '%ü%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'Ä', 'Ä') WHERE user_sig LIKE '%Ä%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'Ö', 'Ö') WHERE user_sig LIKE '%Ö%';
UPDATE phpbb_users SET user_sig = REPLACE(user_sig, 'Ü', 'Ü') WHERE user_sig LIKE '%Ü%';

UPDATE phpbb_users SET user_from = REPLACE(user_from, 'ß', 'ß') WHERE user_from LIKE '%ß%';
UPDATE phpbb_users SET user_from = REPLACE(user_from, '´', "'") WHERE user_from LIKE '%´%';
UPDATE phpbb_users SET user_from = REPLACE(user_from, 'ä', 'ä') WHERE user_from LIKE '%ä%';
UPDATE phpbb_users SET user_from = REPLACE(user_from, 'ö', 'ö') WHERE user_from LIKE '%ö%';
UPDATE phpbb_users SET user_from = REPLACE(user_from, 'ü', 'ü') WHERE user_from LIKE '%ü%';
UPDATE phpbb_users SET user_from = REPLACE(user_from, 'Ä', 'Ä') WHERE user_from LIKE '%Ä%';
UPDATE phpbb_users SET user_from = REPLACE(user_from, 'Ö', 'Ö') WHERE user_from LIKE '%Ö%';
UPDATE phpbb_users SET user_from = REPLACE(user_from, 'Ü', 'Ü') WHERE user_from LIKE '%Ü%';

UPDATE phpbb_users SET user_occ = REPLACE(user_occ, 'ß', 'ß') WHERE user_occ LIKE '%ß%';
UPDATE phpbb_users SET user_occ = REPLACE(user_occ, '´', "'") WHERE user_occ LIKE '%´%';
UPDATE phpbb_users SET user_occ = REPLACE(user_occ, 'ä', 'ä') WHERE user_occ LIKE '%ä%';
UPDATE phpbb_users SET user_occ = REPLACE(user_occ, 'ö', 'ö') WHERE user_occ LIKE '%ö%';
UPDATE phpbb_users SET user_occ = REPLACE(user_occ, 'ü', 'ü') WHERE user_occ LIKE '%ü%';
UPDATE phpbb_users SET user_occ = REPLACE(user_occ, 'Ä', 'Ä') WHERE user_occ LIKE '%Ä%';
UPDATE phpbb_users SET user_occ = REPLACE(user_occ, 'Ö', 'Ö') WHERE user_occ LIKE '%Ö%';
UPDATE phpbb_users SET user_occ = REPLACE(user_occ, 'Ü', 'Ü') WHERE user_occ LIKE '%Ü%';

UPDATE phpbb_users SET user_interests = REPLACE(user_interests, 'ß', 'ß') WHERE user_interests LIKE '%ß%';
UPDATE phpbb_users SET user_interests = REPLACE(user_interests, '´', "'") WHERE user_interests LIKE '%´%';
UPDATE phpbb_users SET user_interests = REPLACE(user_interests, 'ä', 'ä') WHERE user_interests LIKE '%ä%';
UPDATE phpbb_users SET user_interests = REPLACE(user_interests, 'ö', 'ö') WHERE user_interests LIKE '%ö%';
UPDATE phpbb_users SET user_interests = REPLACE(user_interests, 'ü', 'ü') WHERE user_interests LIKE '%ü%';
UPDATE phpbb_users SET user_interests = REPLACE(user_interests, 'Ä', 'Ä') WHERE user_interests LIKE '%Ä%';
UPDATE phpbb_users SET user_interests = REPLACE(user_interests, 'Ö', 'Ö') WHERE user_interests LIKE '%Ö%';
UPDATE phpbb_users SET user_interests = REPLACE(user_interests, 'Ü', 'Ü') WHERE user_interests LIKE '%Ü%';

UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ß', 'ß') WHERE topic_title LIKE '%ß%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, '´', "'") WHERE topic_title LIKE '%´%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ä', 'ä') WHERE topic_title LIKE '%ä%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ö', 'ö') WHERE topic_title LIKE '%ö%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'ü', 'ü') WHERE topic_title LIKE '%ü%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'Ä', 'Ä') WHERE topic_title LIKE '%Ä%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'Ö', 'Ö') WHERE topic_title LIKE '%Ö%';
UPDATE phpbb_topics SET topic_title = REPLACE(topic_title, 'Ü', 'Ü') WHERE topic_title LIKE '%Ü%';


Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 05.07.2025 10:54
von Fred
Guten Tag an das Support Team,
Info Wilfried und ich arbeiten zusammen am Forum

Es gibt eine weitere Meldung die bei einem Mitglied ( von 1000 ) auftritt und die
wir uns nicht erklären können. Der User kam eine Woche ohne Probleme ins Forum und bekommt nun diese Meldung

[phpBB Debug]PHP Warning: in file [ROOT]phpbb/notification/type/base.php on line 121: unserialize(): Error at offset 186 of 213 bytes

Obwohl "nur" eine Warnung kommt der User nicht mehr ins Forum.
Evt hat jemand eine Idee.

Gruß Fred

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 05.07.2025 11:02
von cpg
Moin,

hat der User Sonderzeichen im Namen?
oder im Profil?

Gruß
cpg

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 05.07.2025 11:05
von Fred
Nein weder noch, und was sehr seltsam ist dass er eine Woche problemlos ins Forum kam
und ohne eine Änderung jetzt die Meldung bekommt...

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 05.07.2025 11:37
von cpg
Das ist der Bereich in der base.php:

Code: Alles auswählen

// The row from the database (unless this is a new notification we're going to add)
		$this->data = $data;
		$this->data['notification_data'] = (isset($this->data['notification_data'])) ? unserialize($this->data['notification_data']) : array();
Ich würde mir in der Datenbank mal "phpbb3_notifications" anschauen

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 05.07.2025 12:13
von Fred
Hallo cpg, danke für den Tipp kannst du mir sagen auf was ich da achten muss ??

Gruß Fred

Re: [3.3] weitere Warnungen nach Provider Umzug

Verfasst: 05.07.2025 19:35
von cpg
In den phpbb3_notifications würde ich die notification_data nach "falschen Sonderzeichen" absuchen und die bereinigen