ThWboard Support-Forum (Archiv)

Ort: / Boardübersicht / Probleme und Fragen / Versehentlich User gelöscht - wie Daten wieder herstellen?


Seite 1 von 1

Eistee schrieb am 16.04.2004 um 23:21 Uhr

Hallo,
in meinem Board hat ein zweiter Admin "versehentlich" einen User gelöscht :(
Dieser User heisst "Hans" ;)
Nun steht vor allem bisherigen Beiträgen diese Users *Gast*Hans
Hans hat sich auch wieder unter seinem alten Namen im Forum registriert, nur sind natürlich alle seine Daten futsch - auch die Anzahl seiner bisherigen Posts

Gibt es eine Möglichkeit, die Daten (besonders die Zahl seiner bisherigen Posts wieder herzustellen?
Ausserdem soll vor all seinen Posts wieder nur "Hans" stehen.

Ich hoffe, es ist klar, was ich meine *g*

Gibt es da irgendeine einfache Möglichkeit?


Wie müsste ein Script aussehen, dass in der DB alles wo "*Gast*Hans" steht durch "Hans" austauscht und ausserdem wieder die korrekte Zahl seiner Posts in die entsprechende Spalte der DB schreibt?
Ich kenn mich leider nicht genug in der DB-Struktur und mit PHP aus, um ein solches Script ohne eure Hilfe schreiben zu können :(

Wäre euch sehr dankbar, wenn ihr mir da helfen könntet.
Hans sicher auch... ;)

Narodnaja schrieb am 17.04.2004 um 10:10 Uhr

Hallo,

hab sowas schonmal selber gebraucht, würde es so versuchen:

1. du brauchst die neue user-id :)

2.

include "./inc/header.inc.php";

if ($q_post = thwb_query("UPDATE ".$pref."post SET userid = 'DEINENEUEUSERID', postguestname = '' WHERE postguestname = '*Gast*Hans'");)
{ echo "Post-Tabelle erfolgreich upgedated<br>"; }
else { echo "Fehler in Post-Tabelle<br>"; }

$count = mysql_num_rows($q_post);

if ($u_post = thwb_query("UPDATE ".$pref."user SET userposts = '".$count."' WHERE userid = 'DEINENEUEUSERID'");)
{ echo "User-Tabelle erfolgreich upgedated<br>"; }
else { echo "Fehler in User-Tabelle<br>"; }

if ($u_board = thwb_query("UPDATE ".$pref."board SET boardlastpostby = 'Hans' WHERE boardlastpostby = '*Gast*Hans'");)
{ echo "Board-Tabelle erfolgreich upgedated<br>"; }
else { echo "Fehler in Board-Tabelle<br>"; }

if (
($u_thread1 = thwb_query("UPDATE ".$pref."thread SET threadauthor = 'Hans' WHERE threadauthor = '*Gast*Hans'");) 
AND 
($u_thread1 = thwb_query("UPDATE ".$pref."thread SET threadlastreplyby = 'Hans' WHERE threadlastreplyby = '*Gast*Hans'");))
{ echo "Thread-Tabelle erfolgreich upgedated<br>"; }
else { echo "Fehler in Thread-Tabelle<br>"; }

aus dem Kopf geschrieben, daher unbedingt vorher Datenbank sichern.
Falls dein User als *Gast*Hans nicht in der _board oder _thread-Tabelle steht, wird dir das Skript das Ergebnis als Fehler in diesen Tabellen ausgeben, das macht aber dann nix.

Eistee schrieb am 17.04.2004 um 17:04 Uhr

Erstmal danke für deine schnelle Hilfe :)
Habe das script jetzt kopiert und versucht auszuführe, aber ich bekam diese fehlermeldung:

Parse error: parse error, unexpected ';' in /is/htdocs/47449/www.alkbrueder.de/content/thwb/inc/rescue.php on line 4

Die enssprechende Zeile is diese hier

if ($q_post = thwb_query("UPDATE ".$pref."post SET userid = '27', postguestname = '' WHERE postguestname = '*Gast*Hans'");)

Wo liegt der fehler?

MrNase schrieb am 17.04.2004 um 17:14 Uhr

das ';' muss da weg :)

Eistee schrieb am 17.04.2004 um 18:43 Uhr

wenn ich das "," weg mache, bekomme ich folgende meldung

Das Forum ist noch nicht installiert! Klicken Sie hier, um mit der Installation zu beginnen.

Was mach ich falsch? :(

MrNase schrieb am 17.04.2004 um 19:06 Uhr

header.inc.php öffnen und folgendes löschen:

if( !@include('./inc/config.inc.php') )
{
    print 'Das Forum ist noch nicht installiert! Klicken Sie <a href="./admin/install.php">hier</a>, um mit der Installation zu beginnen.';
    exit;
}

theDon schrieb am 17.04.2004 um 19:29 Uhr

besser auskommentieren ;)

/e: oder das script direkt ins foren-verzeichnis packen.

Eistee schrieb am 17.04.2004 um 21:06 Uhr

Klappt leider auch nicht
so erscheint blos eine leere seite :(
der fehler muss also noch irgendwo im script liegen... :(
wer weiss wo?

Narodnaja schrieb am 18.04.2004 um 12:15 Uhr

hast du nun ein ; oder ein , rausgenommen ? das ; zwischen den letzten beiden Klammern muss weg (habs mal wieder erst ohne if geschrieben :rolleyes: )

Eistee schrieb am 18.04.2004 um 12:42 Uhr

oh, habs jetzt soweit hinbekommen
allerdings hats nicht funktioniert, dass die korrekte anzahl der posts wieder in die db geschrieben wurde
der user hat weiterhin nur 0 posts :(
wie bekomm ich das auch noch hin?

*edit*
so, ist jetzt wieder alles in ordnung
danke für eure hilfe!!

*close*

prophet schrieb am 25.09.2005 um 17:00 Uhr

hallo,

Hab das gleiche problem.
Nur ich habe ein backup gehabt und manuell einfach den user wieder hagenau soin die tb_user eingefügt also mit allen alten daten wie id etc.

Nur die alten postings werden noch immer mit gast angezeigt.

Wieweit stimmt das script auf meine fall?

lg Prophet

PhoenixDH schrieb am 26.09.2005 um 07:30 Uhr

Bei der Rückspielung musst du beachten das der User wieder die gleiche ID bekommt wie vorher, dann sollte das funktionieren !

prophet schrieb am 29.09.2005 um 04:06 Uhr

hallo, hat die gleich ID wieder nur bei sein alten post steht noch immer gast
bzw, das kürzl von mir ~.

Kannst es dir ja mal anschauen http://www.zulu-ebooks.com/site/board/
User: Holger

Hab manuell in der SQL Datenbank ne neue zeile hinzugefügt und alle alte Daten genauso reingeschrieben.

Hat auch alles übernommen, die gruppe usw. und die ID ist die selbe nur die alten post verknüoft er nicht mit dem User.

Außer bei der Staff scheint er auch offenbar nicht auf.

Sehr ärgerlich sowas. was kann man da tun?

lg Prophet

prophet schrieb am 29.09.2005 um 04:29 Uhr

Also das mit der Staff ist geklär hab mich vertippt.

Aber sonst hab ich die Zeile genau so manuel hinzugefügt also mit mySQLAdmin:

(2,'Holger',1102252028,1127203129,897,'holger.maier@zulu-ebooks.com','f3638abaf527fc4b71ebd94721fbf4b3','','Salzburg / Austria',0,'','','1980-12-11',0,'Historiker','','',0,'Operator',0,0,0,0,1,0,0,'http://www.zulu-ebooks.com/site/img/avatar/hegel.jpg',',3,',0,0);

Also hab es nicht per SQL Befehl gemacht sondern mit der MySQLAdmin GUI.

Den last post habe ich auf null gestzt da er mit dem backup nicht mehr übereinstimmt

prophet schrieb am 16.11.2005 um 05:36 Uhr

Hallo,..

Das Problem besteht noch immer, kann mir da wirklich keiner helfen?

lg Prophet

Narodnaja schrieb am 16.11.2005 um 22:23 Uhr

Zusammengefasst: es geht dir _nur_ darum, die Beiträge, wo jetzt *Gast* Holger steht wieder mit seiner UserID zu verknüpfen, so dass die Beiträge wieder seine sind ?

Vor dem Code noch folgende Infos nochmal bitte:
- welche Boardversion ?
- welche Userid hat der Holger ? 2 ?
- Wie genau ist dein Gast-Prefix ?

prophet schrieb am 04.12.2005 um 19:59 Uhr

Narodnaja postete
Zusammengefasst: es geht dir _nur_ darum, die Beiträge, wo jetzt *Gast* Holger steht wieder mit seiner UserID zu verknüpfen, so dass die Beiträge wieder seine sind ?

Ja genau.

Vor dem Code noch folgende Infos nochmal bitte:
- welche Boardversion ?

ThWboard 3 Beta 2.84-php5

- welche Userid hat der Holger ? 2 ?

Ja, 2 vorher und nun auch wieder.

- Wie genau ist dein Gast-Prefix ?

"~" (ohne "")


thx im voraus habe wirklich keine ahnung an was das leiegn könnte.

Narodnaja schrieb am 06.12.2005 um 15:24 Uhr

Erklärung: In der Tabelle, in der die Posts gespeichert sind, steht jetzt überall, wo vorher als Verfasser die User-ID 2 steht, keine ID mehr, dafür ein Eintrag in der Gästespalte.
Ich schreib dir heute Abend einen Code, der das rückgängig macht.

/edit:
kopiere dir folgenden Code in eine leere PHP-Datei, die du im Board-Stammverzeichnis einmal ausführst:

<?php 
include "./inc/header.inc.php";

if ($q_post = thwb_query("UPDATE ".$pref."post SET userid = '2', postguestname = '' WHERE postguestname = '~Holger'"))
{ echo "Post-Tabelle erfolgreich upgedated<br>"; }
else { echo "Fehler in Post-Tabelle<br>"; }

$count = mysql_num_rows(thwb_query("SELECT userid FROM ".$pref."post WHERE userid = '2'"));

if ($q_user = thwb_query("UPDATE ".$pref."user SET userposts = '".$count."' WHERE userid = '2'"))
{ echo "User-Tabelle erfolgreich upgedated<br>"; }
else { echo "Fehler in User-Tabelle<br>"; }
?>

Ich habs getestet, sogar mit "Holger" und Userid = 2 in neuem Testboard, aber vorsichtshalber vorher wie immer Datensicherung machen ! Und keine Garantie. Aber danach sollten sowohl die Beiträge wieder richtig zugeordnet sein als auch seine Gesamtposts stimmen.
Rückmeldung ist gerne gesehen !

prophet schrieb am 12.12.2005 um 13:54 Uhr

Hat perfekt geklappt, danke dir . *freu*

Auf die Idee, das die ID weg ist bin ich ned gekommen.
Hm,.. sollte man vielleicht in zukünftige versionen beheben, das gelöschte user ihre beiträge verlieren.

Thx dir nochmal für deine Mühen ;)

lg Prophet.

Narodnaja schrieb am 12.12.2005 um 20:53 Uhr

np, freut mich :)

sollte man vielleicht in zukünftige versionen beheben, das gelöschte user ihre beiträge verlieren.

naja, wenn der User gelöscht ist, hat er halt mal keine Beiträge mehr, da man ja die User-ID nicht mehr zuordnen kann.

Du kannst, um sowas zu vermeiden, einen Benutzer höchstens permanent bannen. Dann bleiben seine Einträge, aber er kann nix mehr schreiben.

prophet schrieb am 13.12.2005 um 04:47 Uhr

aso ok,.. aber ich wollte ihn ja ned löschen ;)
Aber gut zu wissen.

Seite 1 von 1