Seite 1 von 1

[3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 16:57
von Zwixx
Hallo,

ich habe ein Forum was offenbar von Spammern überlaufen wurde und nun knapp 3000 User hat, die sich registriert haben. Ansich wäre das ja kein Problem, man kann diese ja einfach über das Benutzer löschen alle entsorgen. Das Problem ist, offenbar sind es zu viele und er macht einfach gar nichts wenn ich dann auf das bestätigen zum löschen klicke (die Liste der zu löschenden User kommt noch, ist auch offenbar korrekt).

Wenn ich 3 oder 4 anklicke, macht er das reibungslos, bei so vielen versagt offenbar diese Funktion. Gibt es dazu eine Lösung? Oder muss ich auf einen eventuellen Bugfix warten?

Danke schon mal. Benutzt wird übrigens Version 3.2.1 und auch vorher 3.1.7 - bei beiden das gleiche Problem. Ich vermute hierbei wird versucht über einen SQL der zu lang ist diese Benutzer auf einmal zu löschen.

Gruß
Zwixx

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 18:09
von Thiesi
Sperre doch die User + IPs im Moderationsbereich.
Für jeden User eine Zeile. Dann können die nicht mehr Spammen.

Thiesi

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 18:12
von Zwixx
Es geht nicht darum, die Benutzer zu sperren. Es geht darum, sie loszuwerden. Das sie nicht mehr in der Liste der Benutzer auftauchen beispielsweise.

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 18:29
von Dr.Death
Hallo zusammen,

kleiner Hinweis zuerst:
IP Adressen zu sperren ist für die meisten Betreiber eher sinnlos, da die meisten User täglich/wöchentlich/stündlich/minütlich eine neue IP Adresse beziehen können.

3000+ User pro Zeile zu sperren ist ebenso unsinnig und zeitraubend.


Nun zum eigentlichen Thema:
Wie bist Du bisher vorgegangen?

Ich würde folgenden Weg nehmen:
ACP -->
Benutzer und Gruppen -->
Automatisches Löschen inaktiver Benutzer -->
[b]Beiträge entspricht 0[/b]


Ich gehe davon aus, das Deine regulären Benutzer mindestens einen Beitrag erstellt haben...ansonsten würden sie mit dieser Aktion gelöscht!

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 18:32
von Zwixx
Richtig. Und genau das funktioniert nicht. Es werden keine Nutzer gelöscht. Obwohl sie mir als Liste angezeigt werden.

Wenn ich nur einige aus der Liste auswähle, geht es. Deswegen meine Vermutung, das das intern ein SQL ist, der aber durch die Länge schief geht und es keine Fehlerbehandlung gibt (Es kommt auch keine Meldung "Es wurde gelöscht", es kommt lediglich wieder die Seite zur Parametereingabe).

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 18:48
von vfrblue
Hast du denn auch in den Textfeldern einen Platzhalter * gesetzt?

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 18:49
von Zwixx
Nein, und dann - sollte das schiefgehen - würde er ja gar nicht bis zu der Liste der Benutzer kommen.

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 19:00
von vfrblue
Die Benutzer, die du löschen möchtest, sind auch markiert?
Wenn es 3000 und mehr sind, kann das Löschen schon eine Weile dauern.

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 19:07
von Zwixx
Ja, auch das ist nicht das Problem.

Wie ich geschrieben habe, kommt wieder die Seite die zur Eingabe der Parameter verfügbar ist. Also ist das einfach eine fehlerhafte Überprüfung in phpbb das klein Fehler kommt. Gleichzeitig aber auch eine fehlerhafte Implementierung, wenn so viele Nutzer gelöscht werden sollen.

Ich denke, ich werde mir da was einfallen lassen müssen um das direkt in der DB zu löschen. Oder ich baue mir ein Script, was die User einzeln löscht.

Re: [3.2] Sehr viele User auf einmal löschen

Verfasst: 19.08.2017 20:40
von Zwixx
Lösung des Problems:

Ich habe mit Firefox und dem Addon Firebug immer 300 Stück der Einträge markiert, dann gelöscht. Dann klappts. Wer das auch machen will... hier das JS, was man auf der Seite ausführen muss das die Liste mit den Haken beinhaltet:

Code: Alles auswählen

function marklist2(id, name, state)
{
	var parent = document.getElementById(id) || document[id];

	if (!parent)
	{
		return;
	}

	var rb = parent.getElementsByTagName('input');

	for (var r = 0; r < 300; r++)
	{
		if (rb[r].name.substr(0, name.length) == name && rb[r].disabled !== true)
		{
			rb[r].checked = state;
		}
	}
}

marklist('userlist', 'user_ids', false)
marklist2('userlist', 'user_ids', true)
Nicht schön, aber geht. Forum ist wieder sauber :)