User wiederherstellen

Probleme bei der regulären Arbeiten mit phpBB, Fragen zu Vorgehensweisen oder Funktionsweise sowie sonstige Fragen zu phpBB im Allgemeinen.
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Antworten
RogerM
Mitglied
Beiträge: 216
Registriert: 26.04.2003 18:09
Wohnort: Eschenbach

User wiederherstellen

Beitrag von RogerM »

Ich habe fälschlicherweise einen User gelöscht (Über Admin-Panel). Ichhabe daraufhin im phpMyAdmin den User mit der gleichen ID wieder erstellt. Wir kann ich es nun machen, dass die rund 2000 Beiträge wieder diesem User zugeordnet werden? Muss ich bei allen Beiträge manuell wieder den Benutzernamen (bzw. die ID) hinzufügen?

Oder kann man da gar nichts machen?
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Da kann man nicht viel machen. Gelöscht ist gelöscht...

Hast Du dem User denn auch eine Gruppe erstellt und ihn da reingepackt, um das phpbb-Rechte-System nicht zu verwirren?
Tip: Der DB-Maintenance-Mod kann das automatisch machen.

Die 2000 Beiträge mußt Du wohl manuell wieder ihm zuteilen. Denn die wurden alles auf "von Gast" gestellt. Ausser Du hast noch ein altes Backup. Dann könntest Du Dir ein Script schreiben, welches die Beiträge Updatet. Sowas gibt es aber glaube ich nicht fertig...

Grüße
Dennis
RogerM
Mitglied
Beiträge: 216
Registriert: 26.04.2003 18:09
Wohnort: Eschenbach

Beitrag von RogerM »

Dennis Böge hat geschrieben:Da kann man nicht viel machen. Gelöscht ist gelöscht...

Hast Du dem User denn auch eine Gruppe erstellt und ihn da reingepackt, um das phpbb-Rechte-System nicht zu verwirren?
Tip: Der DB-Maintenance-Mod kann das automatisch machen.

Die 2000 Beiträge mußt Du wohl manuell wieder ihm zuteilen. Denn die wurden alles auf "von Gast" gestellt. Ausser Du hast noch ein altes Backup. Dann könntest Du Dir ein Script schreiben, welches die Beiträge Updatet. Sowas gibt es aber glaube ich nicht fertig...
Den DB-Maintenance-Mod habe ich mal durchlaufen lassen. Hat die Gruppe erstellt.

Klar wurde alles auf Gast gestellt, aber überall wurde ja der Username des ehemals registrierten hinzugefügt. Also wenn der User "Peter" z.B. 10 Beiträge geschrieben hat und dann der User gelöscht wird, werden seine Beiträge ja auf "Peter Gast" (sozusagen) umgestellt. In der Tabelle phpbb_post wurde ja einfach die Poster_ID auf -1 gesetzt und bei post_username der Name hinzugefügt (in diesem Beispiel Peter). Also kann ich ja mit "Teilweise Anzeigen" alle Post herausfiltern, die post_username=Peter sind. Allso wäre es problemlos herauszufinden, welche Beiträge dem User wieder zugeordnet werden müssen. Nur bin ich nicht wirklich gut im Programmieren, also wüsste ich nicht, wie es automatisieren könnte, dass in alle Zeilen mit post_username=Peter die Zelle poster_id=-1 in poster_id=10 (ID von Peter) geändert werden.
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Stimmt, da habe ich gar nicht dran gedacht.

!! Ohne Gewähr !!

Code: Alles auswählen

UPDATE phpbbb_posts SET poster_id = 5 WHERE post_username='Pedddder'
- Der MySQLCode ist nur flüchtig zusammengeschrieben und ungetestet. Username und Poster_Id mußt Du anpassen. Danach sollte es gehen, ist aber ungeprüft (ich lösche keinen User, nur um das zu überprüfen...) - Mache also vorher ein Backup...

!! Ohne Gewähr !!

Grüße
Dennis
RogerM
Mitglied
Beiträge: 216
Registriert: 26.04.2003 18:09
Wohnort: Eschenbach

Beitrag von RogerM »

Wenn man das dritte b bei phpbbb_posts herausnimmt, funktioniert es (habs an einem Testfourm ausprobiert). Nur die Darstellung des Autors (wenn der betroffenen User einmal ein neuer Thread erstellte, ist nicht mehr auf den User verlinkt. Aber das ist nicht so schlimm)

Vielen Dank Dennis
CyberCop
Mitglied
Beiträge: 30
Registriert: 16.07.2003 19:45

Beitrag von CyberCop »

oder du Installiert dir die Mod mit Userposts editieren =)

PS: Sry hatte keine zeit alles zu lesen deswegen wei sich nicht ob schon vorgeschalgen wurde.
Dennis63
Ehemaliges Teammitglied
Beiträge: 2597
Registriert: 02.07.2003 18:46

Beitrag von Dennis63 »

Hi. Ja, das 3. B war absichtlich da. Du solltest Dir den Code wenigsten angucken, bevor Du ihn nutzt ;)


Zu Den Topics: Es gibt die Spalte "phpbb_topics_topic_poster_id"... Die muss auch noch wiederhergestellt werden. Mit Hilfe der Spalte first_topic_post_id kann man dann prüfen, ob der Topic_Poster der selbe Poster für das Posting ist...

Jedoch wird der MySQL Code dafür etwas länger.

Den Anfang geb ich Dir mal (Leider ist meine alte Version von MySQLFront mal wieder abgeschmiert - daher tippe ich den Code mal so ein - da sind bestimmt diverse Feher drinne..

Code: Alles auswählen

SELECT phpbb_topics.topic_id  FROM (....)
WHERE phpbb_topics.first_post_id = phpbb_posts.post_id
AND phpbb_topics.poster_id <> phpbb_posts.poster_id
Das Ergebnis sollten alle Topic_IDs sein, die von dem besagen User kommen,aber NICHT seine User ID tragen. Aber der Code ist jetzt wirklich "ungeprüft" - Denn bei meinem Check konnte ich irgendwie das Ergebnis nicht nachvollziehen - Aber es sollte Dir als kleine Hilfe bestimmt reichen, wenigsten die Topic_Ids zu bekommen.

Grüße
Dennis
RogerM
Mitglied
Beiträge: 216
Registriert: 26.04.2003 18:09
Wohnort: Eschenbach

Beitrag von RogerM »

Mit

Code: Alles auswählen

SELECT phpbb_topics.topic_id  FROM (phpbb_topics, phpbb_posts) 
WHERE phpbb_topics.topic_first_post_id = phpbb_posts.post_id 
AND phpbb_topics.topic_poster <> phpbb_posts.poster_id AND phpbb_posts.post_username = 'Peddder'
wird mir die Liste angezeigt. Und da ich es nicht automatisieren kann, werde ich einfach bei den neusten paar Threads das ganze Manuell anpassen.
Antworten

Zurück zu „phpBB 2.0: Administration, Benutzung und Betrieb“