MyBB.de Forum
Account-Löscher - Druckversion

+- MyBB.de Forum (https://www.mybb.de/forum)
+-- Forum: Archiv (https://www.mybb.de/forum/forum-57.html)
+--- Forum: MyBB 1.4.x (https://www.mybb.de/forum/forum-51.html)
+---- Forum: Sonstiges (https://www.mybb.de/forum/forum-55.html)
+---- Thema: Account-Löscher (/thread-13613.html)

Seiten: Seiten: 1 2


RE: Account-Löscher - Michael - 08.07.2009

Im Moment ist das Löschen beschränkt auf die Benutzergruppe mit der ID 5, in welcher nicht aktivierte Accounts sind. Wenn du das Ändern willst passe entweder die ID im Query an oder nimm sie ganz raus, dann werden alle Accounts unabhängig von der Benutzergruppe entfernt. Die Beitragsanzahl wird im Moment noch gar nicht beachtet, die müsste auch noch ergänzt werden:
PHP-Code:
$query $db->simple_select("users""uid""postnum = '0' AND lastactive < '{$cut2}' AND away != '1'"); 



RE: Account-Löscher - Ryuuzaki - 08.07.2009

Ah, da lag das Problem. Also lautet der fertig Code:

PHP-Code:
<?php
function task_inactivemembers($task)
{
    global 
$db;

    
// Nicht aktivierte Accounts löschen
    
$cut TIME_NOW-60*60*24*7;
    
$cut2 TIME_NOW-60*60*24*31;
    
$query $db->simple_select("users""uid""postnum = '0' usergroup = '2' AND regdate < '{$cut}'" OR "lastactive < '{$cut2}'" AND "away != '1'");

    while(
$users $db->fetch_array($query)) {
        
$db->update_query("posts", array('uid' => 0), "uid='{$users['uid']}'");
        
$db->delete_query("userfields""ufid='{$users['uid']}'");
        
$db->delete_query("privatemessages""uid='{$users['uid']}'");
        
$db->delete_query("events""uid='{$users['uid']}'");
        
$db->delete_query("moderators""uid='{$users['uid']}'");
        
$db->delete_query("forumsubscriptions""uid='{$users['uid']}'");
        
$db->delete_query("threadsubscriptions""uid='{$users['uid']}'");
        
$db->delete_query("sessions""uid='{$users['uid']}'");
        
$db->delete_query("banned""uid='{$users['uid']}'");
        
$db->delete_query("threadratings""uid='{$users['uid']}'");
        
$db->delete_query("users""uid='{$users['uid']}'");

        
update_stats(array('numusers' => '-1'));
    }

    
add_task_log($task"Nicht aktivierte Accounts gelöscht.");
}
?>

Oder?

EDIT: Habs grad so probiert, klappt och net


RE: Account-Löscher - StefanT - 08.07.2009

In deinem Forum muss man sich also als abwesend bis unbekannt eintragen. Toungue
PS: Um die Schleife zu vermeiden (könnte viele Queries geben), kannst du auch die UIDs mit implode bündelt.


RE: Account-Löscher - Ryuuzaki - 09.07.2009

Ich habs so probiert, es klappt doch, alleridings hat es alle User gelöscht. Bad
Was ist den daran nun wieder falsch!!!


RE: Account-Löscher - Michael - 09.07.2009

Ich hoffe, du hast vor dem Test ein Backup angelegt. Du musst deinen Query nochmal überdenken. Im ersten Teil vor dem "OR" fehlt ein AND und der Teil nach dem "OR" macht den Teil davor überflüssig, da er alle Bnutzer betrifft.