Verwijderen van leden complete groep

Hulp nodig bij je installatie of kom je ergens niet uit?
Probeer phpBB3.2! Problemen lossen we samen met je op.
Plaats reactie
John Leeuwis
Berichten: 173
Lid geworden op: 21 mei 2009, 19:24
Locatie: Nijeveen
Contacteer:

Verwijderen van leden complete groep

Bericht door John Leeuwis » 11 okt 2018, 13:20

Uw phpBB versie:
3.2.0

Geïnstalleerde extensies:
Advanced BBCode Box 3.1.4
Advanced login 1.0.6
Auto-lock Topics 1.0.3
Board3 Portal 2.1.0
Collapsible Forum Categories 1.0.2
Contact Admin 1.1.4
Delete My Account 1.0.0
Genders 1.1.1
Lightbox 1.0.5
mChat 2.0.2
Modern quote 1.0.1
National Flags 2.1.4
Pages 2.0.2
phpBB Display Age Users 1.0.3
phpBB Gallery 3.2.1.1
phpBB Gallery Add-on: ACP Cleanup 1.2.0
phpBB Gallery Add-on: ACP Import 1.2.0
PM Welcome 1.0.1
Quick Login 1.1.1
Scroll To Top 1.0.1
Site logo (3.2) 2.1.0-rc6
Sticky navigation bar 1.0.0-RC6
Tapatalk Plugin for phpBB 3.1/3.2 2.1.3
Topic Template 0.1.

Forum link:
https://www.fordmondeoclub.nl/phpBB3/app.php/portal

PHP Versie:
7.0

Heeft u wat verandert waardoor het probleem zich nu voor doet?
Nee

Wat heeft u al geprobeerd om het probleem op de lossen?
Een script dat in phpBB3.0.x werkte.

Code: Selecteer alles

<?php
/**
*
* @package phpBB3
* @version $Id$
* @copyright (c) 2005 phpBB Group
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
define('IN_PHPBB', true);
$phpbb_root_path = (defined('PHPBB_ROOT_PATH')) ? PHPBB_ROOT_PATH : './';
$phpEx = substr(strrchr(__FILE__, '.'), 1);
include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'includes/functions_user.' . $phpEx);

// Start session management
$user->session_begin();
$auth->acl($user->data);
$user->setup();

if ($user->data['user_type'] != USER_FOUNDER)
{
    trigger_error('U moet een beheerder zijn om dit script te kunnen draaien');
}

$sql = 'SELECT group_id
	FROM ' . GROUPS_TABLE . "
	WHERE group_name = 'NEWLY_REGISTERED'
	AND group_type = " . GROUP_SPECIAL;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
	$sql2 = 'SELECT group_id, user_id
	    FROM ' . USER_GROUP_TABLE . '
		WHERE group_id = ' . $row['group_id'];
	$result2 = $db->sql_query($sql2);
	while ($groups_info = $db->sql_fetchrow($result2))
	{
	    $sql3 = 'SELECT group_id, user_id, username
	        FROM ' . USERS_TABLE . '
		    WHERE user_id = ' . $groups_info['user_id'];
	    $result3 = $db->sql_query($sql3);
	    while ($users_info = $db->sql_fetchrow($result3))
		{
		    user_delete('retain', $users_info['user_id'], $users_info['username']);
		}
        $db->sql_freeresult($result3);
	}
	$db->sql_freeresult($result2);		
}
$db->sql_freeresult($result);

echo 'De gebruikers zijn succesvol verwijderd, verwijder nu dit script van uw FTP!';

?>

Uw bericht:
Het lukt me op deze manier niet om een dikke 2000 'pas geregistreerde leden' middels deze query te verwijderen.
Moet er in het script iets verwijderen, of is er intussen een extensie voor?

Gebruikersavatar
Ger
Moderator-team
Moderator-team
Berichten: 4857
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door Ger » 11 okt 2018, 14:01

2000 leden verwijderen? :shock:

Los van de acute oplossing; is er een reden dat je dit nodig hebt?


Je schrijft dat "het niet lukt". Krijg je een foutmelding, een witte pagina, gebeurt er wel of niet iets, anders? Zo op het eerste gezicht zou dit namelijk moeten werken.

John Leeuwis
Berichten: 173
Lid geworden op: 21 mei 2009, 19:24
Locatie: Nijeveen
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door John Leeuwis » 11 okt 2018, 14:20

Ger schreef:
11 okt 2018, 14:01
2000 leden verwijderen? :shock:

Los van de acute oplossing; is er een reden dat je dit nodig hebt?
2000+ uit de groep "pas geregistreerde gebruikers" die daarna de registratie niet completeren en in feite geen lid van het forum zijn, maar wel meetellen in de statistieken.

Ger schreef:
11 okt 2018, 14:01
Je schrijft dat "het niet lukt". Krijg je een foutmelding, een witte pagina, gebeurt er wel of niet iets, anders? Zo op het eerste gezicht zou dit namelijk moeten werken.
Er gebeurt wel íets.
Als ik het script uitvoer, worden er 26 leden per keer verwijderd.
Da's niet veel :?

Gebruikersavatar
Ger
Moderator-team
Moderator-team
Berichten: 4857
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door Ger » 11 okt 2018, 14:41

Ik kan me indenken dat er dan een timeout komt (vaak 30 seconden bij standaard shared hosting pakketten).
John Leeuwis schreef:
11 okt 2018, 14:20
2000+ uit de groep "pas geregistreerde gebruikers" die daarna de registratie niet completeren en in feite geen lid van het forum zijn, maar wel meetellen in de statistieken.
Gaat het dan ook om leden met 0 berichten? Want nieuw geregistreerde gebruikers gaat normaliter tot 3 berichten. Het script wat je hier laat zien controleert daar niet op. Zou die check wel moeten gebeuren?

John Leeuwis
Berichten: 173
Lid geworden op: 21 mei 2009, 19:24
Locatie: Nijeveen
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door John Leeuwis » 11 okt 2018, 14:55

Het maakt in dit geval niet uit of een gebruiker een bericht heeft geplaats.
Hij voldoet niet aan de registratievoorwaarden en blijft dus eeuwig in deze groep zitten.
De groep groeit dus dagelijks met een x aantal.
Die schoonde ik regelmatig op, maar nu is dat een hopeloze zaak.
Dus 0 of 2 berichten, de gebruiker kan gewoon volledig verwijderd worden.

Gebruikersavatar
Ger
Moderator-team
Moderator-team
Berichten: 4857
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door Ger » 11 okt 2018, 15:11

Ik heb, geïnspireerd op jouw script, een nieuwe variant gemaakt: https://gist.github.com/GerB/6250b109c3 ... 703eadf5f2

Let even goed op: dit verwijdert simpelweg alle gebruikers met al hun eventuele berichten die in de groep "Nieuw geregistreerde gebruikers" zitten. Ik heb het niet getest, dus zorg vooral voor een backup van je database voordat je dit uitvoert!

John Leeuwis
Berichten: 173
Lid geworden op: 21 mei 2009, 19:24
Locatie: Nijeveen
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door John Leeuwis » 11 okt 2018, 17:42

Ger schreef:
11 okt 2018, 15:11
Ik heb, geïnspireerd op jouw script, een nieuwe variant gemaakt: https://gist.github.com/GerB/6250b109c3 ... 703eadf5f2
Die eer komt Raimon toe, die heeft hem destijds gemaakt.
Ger schreef:
11 okt 2018, 15:11
Let even goed op: dit verwijdert simpelweg alle gebruikers met al hun eventuele berichten die in de groep "Nieuw geregistreerde gebruikers" zitten.
En dat zou helemaal geweldig zijn.
Is precies wat ik bedoel.
Ger schreef:
11 okt 2018, 15:11
Ik heb het niet getest, dus zorg vooral voor een backup van je database voordat je dit uitvoert!
Ga ik morgen even uitproberen.
Ik zal het laten weten.

John Leeuwis
Berichten: 173
Lid geworden op: 21 mei 2009, 19:24
Locatie: Nijeveen
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door John Leeuwis » 27 okt 2018, 13:34

Ger schreef:
11 okt 2018, 15:11
Ik heb, geïnspireerd op jouw script, een nieuwe variant gemaakt: https://gist.github.com/GerB/6250b109c3 ... 703eadf5f2

Let even goed op: dit verwijdert simpelweg alle gebruikers met al hun eventuele berichten die in de groep "Nieuw geregistreerde gebruikers" zitten. Ik heb het niet getest, dus zorg vooral voor een backup van je database voordat je dit uitvoert!
Je script werkt perfect :D :D
Alle pas geregistreerde gebruikers in 1 keer opgeruimd.
Wat ik echter niet snap, is dat dit script het in een paar secondes 2000+ leden verwijderd en het oude script er telkens tussen de 30 en 60 verwijderde.
Enig idee hoe dit komt?
Server en software (behalve de phpBB3 update) is onveranderd.

Gebruikersavatar
Ger
Moderator-team
Moderator-team
Berichten: 4857
Lid geworden op: 03 jan 2006, 22:23
Locatie: 192.68.1.100
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door Ger » 28 okt 2018, 12:28

Groot verschil is dat je eerdere versie veel overhead had en ook per keer een gebruiker verwijderd en alles vervolgens herberekent, en dat voor iedere gebruiker apart. Mijn script haalt eerst alle te verwijderen gebruikers op, verwijdert die en gaat dan dingen herberekenen.

John Leeuwis
Berichten: 173
Lid geworden op: 21 mei 2009, 19:24
Locatie: Nijeveen
Contacteer:

Re: Verwijderen van leden complete groep

Bericht door John Leeuwis » 04 feb 2020, 13:04

Ook vandaag weer erg blij met je script.
Het werkt érg prettig als je meer dan 800 pgg (spammers) moet verwijderen.

Plaats reactie