Seite 11 von 18

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 20.08.2025 19:34
von qiumi
OK, konnte es lösen.
Scheinbar hat mein FTP Programm, wieso auch immer, die Dateien mit 750 und 640 hocgeladen und nicht wie es wohl sein sollte mit Rechten 755 und 644.
Hab alles von Hand geändert und es ging.
Allerdings hab ich noch bei einzelnen Dingen innerhalb des Dumpers nun weiße Seiten wenn ich sie ausführe.
Gibt es irgendwie ne Übersicht mit welchen Berechtigungen die Dateien aufm FTP liegen sollten?

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 20.08.2025 23:49
von Mahony
Hallo qiumi

Weiße Seiten lassen auf einen Server-Fehler schließen.

Welche PHP-Version läuft denn auf dem Webspace?

Der phpBBDumper ist nämlich nicht mehr kompatibel mit PHP7

P.S. Ansonsten poste bitte das errorlog vom Server (nicht vom Dumper).

Grüße Mahony

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 21.08.2025 11:49
von Takumisan
Mahony hat geschrieben: 30.07.2025 10:57
chris1278 hat geschrieben: 30.07.2025 10:51 Ok ich seh gerade ich habs nicht umbenannt. Du machst das aber recht kompliziert. Biete die dateien doch direkt so an das man die direkt entpacken kann.
Geht leider nicht, da zip nicht so eine starke Komprimierung bietet und ich nur 2MB pro Datei hochladen darf auf dem Webspace.

Grüße Mahony
Hallo Mahony,
ich würde Dir eine DE-Domain und Webspace für dieses Projekt zur Verfügung stellen. Solche Arbeit muss einfach unterstützt werden.
Melde Dich bitte einfach falls Du interesse hast.

Herzliche Grüße aus Regen
Frank

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 21.08.2025 13:40
von Mahony
Hallo Takumisan

Danke für das Angebot, aber das mit dem zu großen Download-Paket hat sich ja mittlerweile erledigt (wurde extrem abgespeckt).

Grüße Mahony

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 22.08.2025 17:13
von chris1278
Hi Mahony.

Hab da ein Problem kann aber nicht sagen, ob es am Dumper liegt oder an der Datenbank.

Wenn ich bei einem bestimmten Forum den Benutzer Anonymous als den Gast editieren will, bekomme ich folgende Fehlermeldung:

Code: Alles auswählen

Fatal error: Uncaught TypeError: sizeof(): Argument #1 ($value) must be of type Countable|array, null given in /var/www/vhosts/h511421.web288.dogado.net/httpdocs/qrz11com/dumper/inc/sqlbrowser/sql_record_update_inputmask.php:39 Stack trace: #0 /var/www/vhosts/h511421.web288.dogado.net/httpdocs/qrz11com/dumper/sql.php(305): include() #1 {main} thrown in /var/www/vhosts/h511421.web288.dogado.net/httpdocs/qrz11com/dumper/inc/sqlbrowser/sql_record_update_inputmask.php on line 39
Ich habe schon den Gast komplett gelöscht und via STK neu erstellt. Keine Änderung.

Alle anderen User lassen sich mit dem phpbbdumper problemlos bearbeiten.

Wenn du da Zugang brauchst (ftp und phpbbdumper), sag Bescheid, richte ich dir gerne ein.

Sofern du nicht weißt, warum dies passiert.

Ist nur in dem einen Forum und nur bei dem einen Benutzer so.

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 22.08.2025 21:17
von Mahony
Hallo Chris

Der Fehler kommt daher weil das SQL-Ergebnis leer ist (also NULL) und das gibt unter PHP8 eine Fehlermeldung.

Versuchs mal damit:

suche in der /mod/inc/sqlbrowser/sql_record_update_inputmask.php

Code: Alles auswählen

$sqledit = "SELECT * FROM `$tablename` WHERE ".$recordkey;
$res = mod_query($sqledit);
$record = mysqli_fetch_array($res, MYSQLI_ASSOC); // get the record
$num = sizeof($record); // get the nr of fields of the record
ersetze mit

Code: Alles auswählen

$sqledit = "SELECT * FROM `$tablename` WHERE " . $recordkey;
$res = mod_query($sqledit);

// Datensatz holen
$record = mysqli_fetch_array($res, MYSQLI_ASSOC);

// Prüfen, ob ein Datensatz vorhanden ist
if (is_array($record)) {
    $num = sizeof($record); // Anzahl der Felder
} else {
    $num = 0; // Kein Datensatz gefunden
    echo "⚠️ Hinweis: Kein Datensatz gefunden für die Abfrage: $sqledit";
}

Besser wäre allerdings das hier

Code: Alles auswählen

$sqledit = "SELECT * FROM `$tablename` WHERE " . $recordkey;
$res = mod_query($sqledit);

// Prüfen, ob die Abfrage erfolgreich war
if ($res && mysqli_num_rows($res) > 0) {
    $record = mysqli_fetch_array($res, MYSQLI_ASSOC);

    // Sicherstellen, dass $record ein Array ist
    if (is_array($record)) {
        $num = sizeof($record); // Anzahl der Felder
    } else {
        $num = 0;
        echo "⚠️ Datensatz konnte nicht korrekt gelesen werden.";
    }
} else {
    $num = 0;
    echo "⚠️ Kein Datensatz gefunden oder Fehler bei der Abfrage: $sqledit";
}

Was ist neu bei dem neuen Code?

mysqli_num_rows($res) prüft, ob überhaupt ein Ergebnis zurückkam.

Fehlermeldungen helfen dir beim Debuggen, falls die Abfrage leer ist oder fehlschlägt.

Sicherheitsprüfung auf is_array($record) verhindert den TypeError.



P.S. Den User Anonymous sollte man nicht einfach ändern oder löschen!

Grüße Mahony

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 22.08.2025 22:15
von chris1278
Sicher da geb ich dir recht aber dennoch muss die funktion auch das können. Ich werde das mal testetn.

@edit

so das zweite eingebaut und dann hauts diese meldung raus:

Code: Alles auswählen

⚠️ Kein Datensatz gefunden oder Fehler bei der Abfrage: SELECT * FROM `phpbb_users` WHERE `user_id`="1" AND `user_type`="2" AND `group_id`="1" AND `user_regdate`="1297351774" AND `username`="Anonymous" AND `username_clean`="anonymous" AND `user_last_active`="1755893854" AND `user_last_confirm_key`="H7PAW0X82J" AND `user_last_search`="1755890860" AND `user_posts`="271" AND `user_lang`="en" AND `user_timezone`="Etc/GMT-1" AND `user_dateformat`="D M d, Y g:i a" AND `user_style`="4" AND `user_full_folder`="-3" AND `user_emailtime`="1697457152" AND `user_topic_sortby_type`="t" AND `user_topic_sortby_dir`="d" AND `user_post_sortby_type`="t" AND `user_post_sortby_dir`="a" AND `user_notify_pm`="1" AND `user_allow_pm`="1" AND `user_allow_viewonline`="1" AND `user_allow_viewemail`="1" AND `user_options`="895" AND `user_sig`="" AND `user_actkey_expiration`="1722310223" AND `user_form_salt`="d8ah3awfxi486hft" AND `user_new`="1" AND `user_rt_enable`="1" AND `user_rt_location`="RT_TOP" AND `user_rt_number`="5" AND `user_elonw`="1"

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 22.08.2025 22:25
von Mahony
Hallo Chris

Deine Abfrage ist so restriktiv, dass sie nur dann ein Ergebnis liefert, wenn alle Bedingungen gleichzeitig zutreffen. Schon ein einziges Feld mit einem abweichenden Wert — z. B. ein Zeitstempel, ein leerer String oder ein anderer Zeichensatz — führt dazu, dass kein Datensatz gefunden wird.

Die Abfrage sucht nach einem Datensatz in phpbb_users, bei dem alle Felder exakt bestimmte Werte haben. Und genau das ist das Problem

Grüße Mahony

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 22.08.2025 22:27
von chris1278
Ja das hab ich bei der Anfrage auch erkannt. Die frage ist warum macht er das.

Wie gesagt dies ist nur in dem einen forum so. und auch nur bei dem gast benutzer. alle anderen user lassen sich normal editieren. und bei anderen forum auch der gast.

Re: phpBBDumper ehemals MyOOSDumper

Verfasst: 22.08.2025 22:35
von Mahony
Hallo Chris

Wenn nur der Gastbenutzer in einem bestimmten Forum betroffen ist, während alle anderen Benutzer (auch Gäste in anderen Foren) problemlos bearbeitet werden können, dann liegt der Fehler sehr wahrscheinlich an einem inkonsistenten oder beschädigten Datensatz in der Datenbank dieses Forums.

Mögliche Ursachen

1. Der Gastbenutzer wurde manuell verändert
Vielleicht wurde der Gastaccount direkt in der Datenbank bearbeitet oder importiert, und dabei wurden Felder gesetzt, die normalerweise leer oder NULL sein sollten.

2. Ungültige oder inkonsistente Feldwerte
Einige Felder wie user_sig, user_form_salt, user_last_confirm_key oder Zeitstempel (user_last_active, user_emailtime) könnten ungültige oder nicht erwartete Werte enthalten.

3. Fehlende oder doppelte Primärschlüssel
Wenn user_id = 1 mehrfach vorkommt oder inkonsistent ist, kann das zu Problemen beim UPDATE oder SELECT führen.

4. Zeichensatzprobleme
Wenn z. B. username = "Anonymous" in einem Forum UTF-8 ist und im anderen ISO-8859-1, kann der Vergleich fehlschlagen — besonders bei username_clean.


Was du tun kannst

1. Datensatz direkt prüfen
Führe folgenden Befehl aus:

Code: Alles auswählen

SELECT * FROM phpbb_users WHERE user_id = 1;
Vergleiche den Gast-Datensatz mit dem funktionierenden aus einem anderen Forum. Achte auf:

Leere Felder vs. NULL

Zeichensatz

Zeitstempel

Sonderzeichen


2. Nur mit user_id abfragen
Teste, ob du den Datensatz bekommst mit:

Code: Alles auswählen

SELECT * FROM phpbb_users WHERE user_id = 1;
Wenn das klappt, erweitere schrittweise die Bedingungen, bis du siehst, welche das Problem verursacht.

3. Datensatz neu anlegen oder bereinigen
Du kannst den Gastbenutzer exportieren aus einem funktionierenden Forum und in das fehlerhafte importieren — oder den defekten Datensatz manuell bereinigen.


Grüße Mahony