![]() |
Merge System zeigt Fehler auf Requirements Check - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: MyBB 1.8.x (https://www.mybb.de/forum/forum-87.html) +--- Forum: Installation, Aktualisierung und Merge System (https://www.mybb.de/forum/forum-89.html) +--- Thema: Merge System zeigt Fehler auf Requirements Check (/thread-39369.html) |
Merge System zeigt Fehler auf Requirements Check - vorlon.tech - 16.03.2025 Hallo, ich habe eine neues myBB Forum mit dem aktuelle Code erstellt und anschließend das Merge System mit letztem Code hochgeladen. Wenn ich das nun laufen lasse erhalte ich bereits auf dem "Requirements Check" folgende Fehlermeldung: Code: Fatal error: Uncaught Error: Call to undefined function merge_fetch_remote_file() in /home/forge/newforum.stargate-project.de/merge/index.php:599 Stack trace: #0 {main} thrown in /home/forge/newforum.stargate-project.de/merge/index.php on line 599 Aktuell habe ich die Seite mit PHP 7.4 laufen, da 7.1, 8.0, 8.1 und 8.2 nur noch mehr Fehlermeldungen auf dem Merge System anzeigen. Hat jemand eine Idee, wie ich mit dem Import weiterkomme? Danke & LG vorlon.tech RE: Merge System zeigt Fehler auf Requirements Check - StefanT - 16.03.2025 Die Funktion "merge_fetch_remote_file" gibt es auf jeden Fall, daher kann ich mir den Fehler nicht so ganz erklären: https://github.com/mybb/merge-system/blob/cff261ee49c9ae6d043cd1181aa5c6c00d1adc1e/resources/functions.php#L649 Bist du sicher, dass du alle Dateien es Merge-System vollständig hochgeladen hast? RE: Merge System zeigt Fehler auf Requirements Check - vorlon.tech - 16.03.2025 @stefanT danke for den schnellen Hinweis. Aus irgendeinem Grund war die Datei mit den Funktionen "leer". Ich habs nochmal hochgeladen und dann zeigte das System unter PHP 7.4 keine Fehler mehr an. Allerdings habe ich beim Import der User jetzt direkt wieder ein Problem: Code: MyBB has experienced an internal SQL error and cannot continue. Irgendwie wird der Username nicht übernommen. Hat jemand dazu eine Idee? Danke! RE: Merge System zeigt Fehler auf Requirements Check - [ExiTuS] - 16.03.2025 Anscheinend gibt es mindestenes ein Mitglied, das keinen "Username" hat - d.h. der Username ist leer. Und spätestens beim Import des zweiten Mitglieds ohne Username wirft die Datenbank diesen Fehler heraus, da das Tabellenfeld 'username' nicht leer sein darf. An dieser Stelle würde ich die Tabelle des alten Forums mit der MyBB-Tabelle sgp_mybb_users vergleichen. (Es werden wahrscheinlich schon viele Mitglider bis zu diesem Fehler importiert worde sein.) Gibt es bis hierhin schon ein Mitglied ohne 'username'? (1) Wir wissen nicht, was dein Urspunrgsforum ist und wie dein Datenbankschema aussieht. Finde heraus, ob es identische oder fehlende 'Username' gibt. SQL: SELECT COUNT(*) FROM [Usprungsforum.users]; SELECT UNIQUE [username] FROM [Usprungsforum.[users]]; Wenn die Anzahl der Datensätze unterschiedlich ist, gibt es Handlungsbedarf - manuell. Finde heraus, ob es Mitglieder ohne Benutzernamen gibt. SQL: SELECT [username] FROM [Urpsungsforum.[users]] WHERE [username] = ''; Die Tabellennamen und Felder des Ursprungsforums musst du entsprechend ersetzen, weil (1). [ETS] RE: Merge System zeigt Fehler auf Requirements Check - vorlon.tech - 17.03.2025 Der erste Datensatz des alten Forums wird mit einem leeren Username übernommen. Beim zweiten Datensatz des alten Forums ist der Username wieder leer und dann kommt dieser Fehler. Im SQL Statement sieht man ja das der Username leer ist. Das passiert von Anfang an. Das Problem scheint in dieser Funktion zu liegen: Code: $insert_data['username'] = encode_to_utf8($data['username'], "user", "users"); RE: Merge System zeigt Fehler auf Requirements Check - bv64 - 17.03.2025 leider wissen wir immer noch nicht, von welcher Forensoftware aus du versuchst den Merge zu machen Könnte bei der Recherche durchaus nützlich sein eventuell wurde das Problem sogar schon gelöst. Schau mal ob die Github-Version von Sama/Omar funktioniert: https://github.com/Sama34/merge-system Das Problem mit dem leeren Usernamen und der Fehlermeldung hatten wir schon einmal, allerdings hatte die Userin es sehr unkonventionell gelöst und ob es der gleiche Merge-Prozess war, wissen wir ja auch nicht RE: Merge System zeigt Fehler auf Requirements Check - vorlon.tech - 17.03.2025 Oh sorry: ich versuche von einem VBulletinV4 Forum aus zu importieren RE: Merge System zeigt Fehler auf Requirements Check - bv64 - 17.03.2025 hast du mal die fork-version von Omar (Sama) probiert? RE: Merge System zeigt Fehler auf Requirements Check - vorlon.tech - 19.03.2025 Ja, habe ich heute ausprobiert. Hier passiert genau dasselbe. Ich habe jetzt mal den Usernamen nach dem rausholen aus der VBulletinV4 Datenbank und nach der Umwandlung im Script gedumpt und hier scheint das problem zu liegen: Aus VBulletin Datenbank: Code: string(7) "Ancient" bool(false) Nach Umwandlung mit "encode_to_utf8($data['username'], "user", "users");" Code: string(19) "_vbulletin4_import2" bool(false) In der "encode_to_utf8" Funktion habe ich mal die beiden encodings gedumpt: Code: var_dump($import_session['table_charset_old'][$old_table_name]); Vielleicht hilft das jemandem auf die Sprünge. Danke! RE: Merge System zeigt Fehler auf Requirements Check - [ExiTuS] - 19.03.2025 Das Problem scheint offensichtlich an der UTF8-Konvertierung zu liegen. Was passiert, wenn du die Datei .\merge\boards\vbulletin4\users.php folgendermaßen bearbeitest? Von: $insert_data['username'] = encode_to_utf8($data['username'], "user", "users"); Zu: $insert_data['username'] = $data['username']; Eliminiere diese Konvertierung und lasse MyBB einfach den Original-Mitgliedsnamen importieren. UTF8 hat einen größeren Zeichensatz und kann die Latin1-Kollation (ISO-8859-1, 256 Zeichen) komplett abdecken; da braucht nichts konvertiert zu werden. Wenn die MyBB-Ziel-Tabelle bereits in UTF8 vorliegt, wird auch jeder Plaintext-String (Username) aus der alten Tabelle in der entsprechenden Kollation in UTF8 in die Tabelle geschrieben. Falls du auf eine Konvertierung bestehen solltest... "encode_to_utf8()" ist eine eigene MyBB-Funktion. Wenn du eine 'unabhängige' Konvertierung vornehmen möchtest, kannst du diese Funktion ebenso durch die native PHP-Funktion "utf8_encode()" ersetzen. Die verwandelt ISO-8859-1 (Latin1) in UTF8, womöglich ohne Probleme. [ETS] |