Kill-User-Script
Verfasst: 26.10.2003 13:13
Wir benutzen mit zwei Foren dieselbe Datenbank. Andi (www.rafinfo.de) hat dazu ein ziemlich geniales Script geschrieben, das per Webinterface sowohl nach Nutzernamen als auch Mail-Adressen sucht (um Karteileichen löschen zu können). Da nicht alle Browser bzw. Browser-Konfigurationen im Admin-Modus die Usersuche unterstützen, ist das ganz praktisch. Irgendwo auf dem Server - natürlich passwortgeschützt - ablegen.
Burks
Code: Alles auswählen
<?
$config[db_server] = 'localhost';
$config[db_user] = 'xxxxxxx';
$config[db_password] = 'xxxxxxx';
$config[db_database] = 'xxxxxxx';
?>
<p>
<form action="phpbbuserdel.php">
Nach User oder email suchen: <input type="text" name="username">
<input type="submit" value="suchen"> (ungefährlich)
</form>
</p>
<hr>
<?
if(!empty($_REQUEST[username])){
print '<p>User auswaehlen (ungefährlich):</p>';
$SELECT = "SELECT username, user_id, user_email
FROM phpbb_users
WHERE username RLIKE '".$_REQUEST[username]."'
OR user_email RLIKE '".$_REQUEST[username]."'
ORDER BY username";
$result = runSQL($SELECT);
foreach ($result as $row){
print '<a href="phpbbuserdel.php?id='.$row[user_id].'">'.$row[username].'</a> ('.$row[user_email].')<br>';
}
}
if(!empty($_REQUEST[id])){
$SELECT = "SELECT username
FROM phpbb_users
WHERE user_id = ".$_REQUEST[id];
$result = runSQL($SELECT);
$username = $result[0][username];
$SELECT = "SELECT count(*) as c
FROM phpbb_posts
WHERE poster_id = ".$_REQUEST[id];
$result = runSQL($SELECT);
$burksposts = $result[0][c];
$SELECT = "SELECT count(*) as c
FROM rafinfo_posts
WHERE poster_id = ".$_REQUEST[id];
$result = runSQL($SELECT);
$rafposts = $result[0][c];
print "<p><b> ".$username."</b> hat <b>".$burksposts."</b> postings im burks Forum und <b>".$rafposts."</b> postings im rafinfo Forum.</p>";
print '<a href="phpbbuserdel.php?delid='.$_REQUEST[id].'">USER LÖSCHEN</a>';
print ' (nur klicken wenn der user wirklich gelöscht werden soll)';
}
if(!empty($_REQUEST[delid])){
$SELECT = "SELECT username
FROM phpbb_users
WHERE user_id = ".$_REQUEST[delid];
$result = runSQL($SELECT);
$username = $result[0][username];
if(empty($username)){
print 'Scheisse da ist was schief gelaufen! Ich habe keinen User zur ID '.$_REQUEST[delid];
print ' gefunden! Hast du auf reload gedrueckt oder sowas??';
exit;
}
$UPDATE = "UPDATE phpbb_posts
SET poster_id = -1,
post_username = '$username'
WHERE poster_id = ".$_REQUEST[delid];
runSQL($UPDATE);
$UPDATE = "UPDATE rafinfo_posts
SET poster_id = -1,
post_username = '$username'
WHERE poster_id = ".$_REQUEST[delid];
runSQL($UPDATE);
$UPDATE = "UPDATE phpbb_topics
SET topic_poster = -1
WHERE topic_poster = ".$_REQUEST[delid];
runSQL($UPDATE);
$UPDATE = "UPDATE rafinfo_topics
SET topic_poster = -1
WHERE topic_poster = ".$_REQUEST[delid];
runSQL($UPDATE);
$DELETE = "DELETE FROM phpbb_topics_watch
WHERE user_id = ".$_REQUEST[delid];
runSQL($DELETE);
$DELETE = "DELETE FROM rafinfo_topics_watch
WHERE user_id = ".$_REQUEST[delid];
runSQL($DELETE);
$DELETE = "DELETE FROM phpbb_users
WHERE user_id = ".$_REQUEST[delid];
runSQL($DELETE);
print '<p>Done. Der user ist Geschichte!</p>';
}
function runSQL($sql_string) {
global $config;
if($config['debug']){
echo "\n\n<!-- ".$sql_string."-->\n\n";
}
$link = mysql_connect ($config['db_server'], $config['db_user'], $config['db_password']) or
die("DB Connection Error <p>Edit the database settings in <code>config.inc.php</code>.</p>" );
$result = mysql_db_query($config['db_database'],$sql_string,$link) or
die("Database Problem".mysql_error($link)."\n<br />\n".$sql_string);
//mysql_db_query returns 1 on a insert statement -> no need to ask for results
if ($result != 1) {
for($i=0; $i< mysql_num_rows($result); $i++) {
$temparray = mysql_fetch_assoc($result);
$resultarray[]=$temparray;
}
mysql_free_result ($result);
}
if (mysql_insert_id($link)) {
$resultarray = mysql_insert_id($link); #give back ID on insert
}
mysql_close ($link);
return $resultarray;
}
?>