21.03.2009, 17:57
22.03.2009, 14:07
Prima, danke!
Um die gelöschten User-Namen ins Log einzutragen, müsste man wohl vor den Update-Queries erst noch eine zusätzliche Abfrage machen, oder steht der jeweils irgendwo "griffbereit"?
Die Anzahl der gelöschten User könnte man über eine Zähl-Variable innerhalb der "while"-Schleife lösen, oder geht das auch einfacher?
Um die gelöschten User-Namen ins Log einzutragen, müsste man wohl vor den Update-Queries erst noch eine zusätzliche Abfrage machen, oder steht der jeweils irgendwo "griffbereit"?
Die Anzahl der gelöschten User könnte man über eine Zähl-Variable innerhalb der "while"-Schleife lösen, oder geht das auch einfacher?
22.03.2009, 16:51
(22.03.2009, 14:07)borsti67 schrieb: [ -> ]Um die gelöschten User-Namen ins Log einzutragen, müsste man wohl vor den Update-Queries erst noch eine zusätzliche Abfrage machen, oder steht der jeweils irgendwo "griffbereit"?Ersetze
PHP-Code:
$query = $db->simple_select("users", "uid", "usergroup = '5' AND regdate < {$cut}");
PHP-Code:
$query = $db->simple_select("users", "uid,username", "usergroup = '5' AND regdate < {$cut}");
(22.03.2009, 14:07)borsti67 schrieb: [ -> ]Die Anzahl der gelöschten User könnte man über eine Zähl-Variable innerhalb der "while"-Schleife lösen, oder geht das auch einfacher?Entweder so oder du lässt dir einfach die Anzahl der Datensätze des Queries ausgeben:
PHP-Code:
$db->num_rows($query);
22.03.2009, 20:14
Na sowas, jetzt lerne ich noch PHP nebenbei...
Kannst Du bitte noch einen letzten Blick drauf werfen, ob ich's richtig gemacht habe?
Kannst Du bitte noch einen letzten Blick drauf werfen, ob ich's richtig gemacht habe?
PHP-Code:
<?php
function task_pruneinactivemembers($task)
{
global $db;
// Nicht aktivierte Accounts löschen
$cut = TIME_NOW-604800;
// User, die nie eingeloggt waren, löschen
$query = $db->simple_select("users", "uid,username", "usergroup = '2' AND timeonline = 0 AND regdate < {$cut}");
$numdel = $db->num_rows($query);
while($users = $db->fetch_array($query)) {
add_task_log($task, "Account {$users['username']} wird gelöscht.");
$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, $numdel." nicht aktivierte/genutzte Accounts gelöscht.");
}
?>
22.03.2009, 23:29
Ja, sieht gut aus.
26.03.2009, 18:38
Kurzes Feedback: Ja, funktioniert.
Nochmal Danke, Michael!
Code:
nie genutzte User löschen Heute, 05:30 Account Resi89 wird gelöscht.
nie genutzte User löschen Heute, 05:30 1 nicht aktivierte/genutzte Accounts gelöscht.
Nochmal Danke, Michael!