query("SELECT username,perms FROM ".C_REG_TBL." WHERE perms != 'admin'");
$users = Array();
while (list($username, $perms) = $DbLink->next_record())
{
$users[] = $username;
}
$DbLink->clean_results();
for (reset($users); $username=current($users); next($users))
{
$usrHash = md5($username);
$VarName = "user_".$usrHash;
if (!isset($$VarName)) continue;
// Delete a profile after having sent a message to the user if he is connected
if ($DELETE_MODE)
{
$VarName = "selected_".$usrHash;
if (isset($$VarName))
{
$uuu = addslashes($username);
$DbLink->query("DELETE FROM ".C_REG_TBL." WHERE username='$uuu'");
$DbLink->query("SELECT room FROM ".C_USR_TBL." WHERE username='$uuu' LIMIT 1");
$in_room = ($DbLink->num_rows() != 0);
if ($in_room)
{
list($room) = $DbLink->next_record();
$DbLink->clean_results();
$DbLink->query("SELECT type FROM ".C_MSG_TBL." WHERE room='".addslashes($room)."' LIMIT 1");
list($type) = $DbLink->next_record();
$DbLink->clean_results();
$DbLink->query("UPDATE ".C_USR_TBL." SET status='u' WHERE username='$uuu'");
$DbLink->query("INSERT INTO ".C_MSG_TBL." VALUES ('$type', '".addslashes($room)."', 'SYS delreg', '', ".time().", '$uuu', 'L_ADM_2')");
};
// Optimize the registered users table when a MySQL DB is used
$DbLink->optimize(C_REG_TBL);
};
}
// Banish an user
elseif ($BANISH_MODE)
{
$VarName = "selected_".$usrHash;
if (isset($$VarName))
{
$uuu = addslashes($username);
$DbLink->query("SELECT latin1,ip FROM ".C_REG_TBL." WHERE username='$uuu' LIMIT 1");
list($Latin1, $IP) = $DbLink->next_record();
$DbLink->clean_results();
$DbLink->query("SELECT count(*) FROM ".C_BAN_TBL." WHERE username='$uuu' LIMIT 1");
list($Nb) = $DbLink->next_record();
$DbLink->clean_results();
if ($Nb == "0")
{
$Until = time() + round(C_BANISH * 60 * 60 * 24);
if ($Until > 2147483647) $Until = "2147483647";
$DbLink->query("INSERT INTO ".C_BAN_TBL." VALUES ('$uuu','$Latin1','$IP','**ToDefine**','$Until')");
};
$Warning = A_SHEET1_10;
};
}
// Modify perms for a registered user and send him a message if he is connected
else
{
$VarName = "perms_".$usrHash; $ppp = $$VarName;
$VarName = "rooms_".$usrHash; $rrr = $$VarName;
$VarName = "old_perms_".$usrHash; $old_ppp = $$VarName;
$VarName = "old_rooms_".$usrHash; $old_rrr = $$VarName;
if ($ppp == $old_ppp && $rrr == $old_rrr) continue;
$uuu = addslashes($username);
$DbLink->query("UPDATE ".C_REG_TBL." SET perms='$ppp', rooms='$rrr' WHERE username='$uuu'");
$DbLink->query("SELECT room FROM ".C_USR_TBL." WHERE username='$uuu' LIMIT 1");
$in_room = ($DbLink->num_rows() != 0);
if ($in_room)
{
list($room) = $DbLink->next_record();
$DbLink->clean_results();
// Find the changes in moderated rooms list
if ($ppp != $old_ppp)
{
if ($ppp == 'user')
$diff_rooms = explode(",", $old_rrr);
else
$diff_rooms = explode(",", $rrr);
}
else
{
$old_rooms_Tab = explode(",",$old_rrr);
$new_rooms_Tab = explode(",",$rrr);
$diff_rooms_Tab = array();
for (reset($old_rooms_Tab); $room2Check=current($old_rooms_Tab); next($old_rooms_Tab))
{
if ($room2Check == "") continue;
if (!room_in($room2Check, $rrr)) $diff_rooms_Tab[] = $room2Check;
}
for (reset($new_rooms_Tab); $room2Check=current($new_rooms_Tab); next($new_rooms_Tab))
{
if ($room2Check == "") continue;
if (!room_in($room2Check, $old_rrr)) $diff_rooms_Tab[] = $room2Check;
}
unset($old_rooms_Tab);
unset($new_rooms_Tab);
if (count($diff_rooms_Tab) > 0)
$diff_rooms = str_replace(",,",",",ereg_replace("^,|,$","",implode(",",$diff_rooms_Tab)));
unset($diff_rooms_Tab);
}
// Send a message to the user if he chats into one of the 'diff' rooms
if (room_in(addslashes($room), $diff_rooms))
{
if ($ppp == 'moderator' && room_in(addslashes($room), $rrr)) // user becomes moderator for the room he chats into
{
$status = "m";
$message = "sprintf(L_MODERATOR, \"".addslashes(htmlspecialchars(stripslashes($uuu)))."\")";
}
else // user becomes user for the room he chats into
{
$status = "r";
$message = "sprintf(L_ADM_1, \"".addslashes(htmlspecialchars(stripslashes($uuu)))."\")";
};
$DbLink->query("UPDATE ".C_USR_TBL." SET status='$status' WHERE username='$uuu'");
$DbLink->query("SELECT type FROM ".C_MSG_TBL." WHERE room='".addslashes($room)."' LIMIT 1");
list($type) = $DbLink->next_record();
$DbLink->clean_results();
$DbLink->query("INSERT INTO ".C_MSG_TBL." VALUES ('$type', '".addslashes($room)."', 'SYS promote', '', ".time().", '', '$message')");
};
}
else
{
$DbLink->clean_results();
};
};
};
};
// Remove profiles of users that have not been chatting for a time > C_REG_DEL
if (!isset($FORM_SEND) && C_REG_DEL != 0) $DbLink->query("DELETE FROM ".C_REG_TBL." WHERE reg_time < ".(time() - C_REG_DEL * 60 * 60 * 24)." AND perms != 'admin'");
// Remove moderator status if no room is specified
$DbLink->query("UPDATE ".C_REG_TBL." SET perms='user' WHERE perms='moderator' AND rooms=''");
?>
$Warning
\n");
?>
query("SELECT COUNT(*) FROM ".C_REG_TBL." WHERE perms != 'admin' LIMIT 1");
list($count_RegUsers) = $DbLink->next_record();
$DbLink->clean_results();
if ($count_RegUsers != 0)
{
?>
0)
{
$downReg = $startReg - 10;
if ($downReg < 0) $downReg = "0";
?>
">
">
|
|
">
">
|
|
|