Admin-Auot-Delete-Users - löscht Einträge nicht

Allgemeiner Support zum phpBB 2 Board und phpBB 2 Modifikationen
Forumsregeln
Auch wenn hier der Support für phpBB 2 weiterhin aufrecht erhalten bleibt, weisen wir darauf hin, dass das phpBB 2 nicht mehr offiziell unterstützt und weiterentwickelt wird!
Antworten
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Admin-Auot-Delete-Users - löscht Einträge nicht

Beitrag von Max »

Hallo,

bei mir im Forum ist Admin_Auto_Delete_Users - MOD installiert.
Im Prinzip funktioniert dieser MOD gut, aber es werden beim Löschen der "fälligen" User die Einträge in der User-Map nicht mit gelöscht. Das ist natürlich recht unvorteilhaft, da es zu Fehlern führt, wenn die ID bei einer neuen Registrierung wieder vergeben wird.

Nun habe ich mal etwas geguckt, woran das liegen kann.

Es gibt folgenden Eintrag in der admin/admin_users.php folgenden Abschnitt:

Code: Alles auswählen

		if( $HTTP_POST_VARS['deleteuser'] )
		{
			$sql = "DELETE FROM " . MAP_MOD_USER_TABLE . "
				WHERE user_id = $user_id";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user coordinates', '', __LINE__, __FILE__, $sql);
			}
Vermutlich ist das der entscheidende Part, der beim "normalen" Löschen eines Users die MAP-MOD-Einträge löscht.
Nun meine Frage; reicht es, wenn ich davon das hier:

Code: Alles auswählen

$sql = "DELETE FROM " . MAP_MOD_USER_TABLE . "
				WHERE user_id = $user_id";
			if( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user coordinates', '', __LINE__, __FILE__, $sql);
in die functions_admin_auto_delete_users.php einfüge?

Oder ist das wesentlich komplizierter als ich es mir vorstelle?

Für Eure Hilfe bin ich schon jetzt dankbar.


Gruß Max
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, das würde reichen. Musst allerdings da die korrekte Stelle finden.
Und bei dem Code nicht die schliessende Klammer "}" am Ende vergessen ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

Hi,

ok, danke :-)

ich habe ja die Codes verglichen, denke, dass es hier:

Code: Alles auswählen

			$sql = "DELETE FROM " . TOPICS_WATCH_TABLE . "
				WHERE user_id = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user from topic watch table', '', __LINE__, __FILE__, $sql);
			}
			
			$sql = "DELETE FROM " . BANLIST_TABLE . "
				WHERE ban_userid = $user_id";
			if ( !$db->sql_query($sql) )
			{
				message_die(GENERAL_ERROR, 'Could not delete user from banlist table', '', __LINE__, __FILE__, $sql);
			}
			
			$sql = "SELECT privmsgs_id
				FROM " . PRIVMSGS_TABLE . "
				WHERE privmsgs_from_userid = $user_id 
					OR privmsgs_to_userid = $user_id";
			if ( !($result = $db->sql_query($sql)) )
			{
				message_die(GENERAL_ERROR, 'Could not select all users private messages', '', __LINE__, __FILE__, $sql);
			}
			
			// This little bit of code directly from the private messaging section.
			while ( $row_privmsgs = $db->sql_fetchrow($result) )
			{
				$mark_list[] = $row_privmsgs['privmsgs_id'];
			}
Am Besten vor dem Abschnitt mit den PNs eingesetzt wird.
Der Bereich mit den Löschungen ist natürlich weitaus größer.


Gruß Max


[EDIT] Es funktioniert, habe es eben auf einem lokalen Testboard ausprobiert....... und schwuppdiwupp war ich als Admin auch gelöscht worden, weil ich auf dem Board soooooo lange nicht online war :D
Also mal als Tipp nebenher, wenn man als Admin den Autodelete-MOD installiert hat, muss man sich an die eigenen Regeln halten, sonst fliegt man raus.
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Oder man setzt diese Bedingung noch mit ein:

Code: Alles auswählen

AND user_id <> 2
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Also mal als Tipp nebenher, wenn man als Admin den Autodelete-MOD installiert hat, muss man sich an die eigenen Regeln halten, sonst fliegt man raus.
Nicht schlecht! :rofl:
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Sei nicht so hart zu ihm. Jeder macht mal Fehler ;)
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Benutzeravatar
AmigaLink
Beiträge: 5843
Registriert: Mi 03.Mär, 2004 09:05
Wohnort: NRW
Kontaktdaten:

Beitrag von AmigaLink »

Bin ich doch garnicht!
Max kann doch nichts dafür, das der Admin_Auto_Delete_Users_Mod seine Arbeit etwas zu genau nimmt!!! :D
[center].: Web Relax .::. Essen mit Freude .::. AmigaLink.de :.
______________________________________

Kein Support per PM, ICQ oder eMail!!!
[/center]
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Ja, so gesehen hast Du recht. Zu wörtlich :cool: :rofl:
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

[quote="oxpus - Fr 04.Feb, 2005 16:31";p="22508"]Oder man setzt diese Bedingung noch mit ein:

Code: Alles auswählen

AND user_id <> 2
[/quote]

DAS ist sicherlich gut, wenn Du mir nun noch verrätst, wo ich es am Besten plaziere......

Dann wäre die Sache perfekt. Obwohl man ja als Admin doch öfter mal im Forum eingeloggt ist, bzw auch Beiträge schreibt. Aber für den Fall, dass man mal wirklich nur die technischen Dinge erledigt und sonst nichts, ist das passend (denn so ein Forum baue ich grade auf, wo ich nach einer Anlaufzeit mich nicht mehr beteiligen werde)


Gruß Max
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Na hier:

Code: Alles auswählen

$sql = "DELETE FROM " . MAP_MOD_USER_TABLE . "
             WHERE user_id = $user_id
                          AND user_id <> 2";
Ist aber irgendwie albern, daher so:

Code: Alles auswählen

if ($user_id != 2)
{
             $sql = "DELETE FROM " . MAP_MOD_USER_TABLE . "
                          WHERE user_id = $user_id"
             if( !$db->sql_query($sql) )
             {
                          message_die(GENERAL_ERROR, 'Could not delete user coordinates', '', __LINE__, __FILE__, $sql);
             }
}
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

öhm, das müsste dann also im ganzen Script in den vergelichbaren abschnitten gemacht werden?
Oder gibt es auch eine omnipotente Lösung, die mit einer Eintragung auf das ganze Script wirkt?

Denn so stelle ich dann lieber Regeln auf, die zu meinem Verhalten passen ;-)
Ist halt eine Frage von Aufwand un Nutzen.


Gruß Max
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Du kannst die Bedingung auch um alle DELETE-Anweisungen herum einfügen.
Also vor der ersten DELETE-Anweisung und mit der schliessenden Klammer "}" nach der letzten Anweisung.
Dann werden diese nicht ausgeführt, wenn der betreffende User eben der Hauptadmin ist.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Max
Beiträge: 628
Registriert: So 23.Jan, 2005 09:54

Beitrag von Max »

aha, also Zeile 1und2 aus dem zweiten Code-Block von Beitrag 10 vor die erste Anweisung und dann Zeile 9 dahinter.

Ok soweit so gut, das ralle ich noch, aber in dem Script sind auch ein Haufen update-Anweisungen für Tabellen, zählen die auch schon zudem Löschprozedere? Vermutlich ja, da es die Posting-Tabllen sind usw.
Kommt das denn schon DAvor?


Gruß Max
Benutzeravatar
oxpus
Administrator
Beiträge: 28735
Registriert: Mo 27.Jan, 2003 22:13
Wohnort: Bad Wildungen
Kontaktdaten:

Beitrag von oxpus »

Das kommt darauf an, in welchem Block die Anweisungen stehen. Meist wird sowas in einer Bedingung wie
if ($mode='delete')
eingebettet.
Karsten Ude
-={ Das Mädchen für alles }=-
Kein Support per Messenger, Email oder PN! Unaufgeforderte Nachrichten werden ignoriert!
No support per Messenger, Email or PM. Each unasked message will be ignored!
Antworten