query("SELECT username FROM ".C_BAN_TBL); $users = Array(); while (list($username) = $DbLink->next_record()) { $ban_users[] = $username; }; $DbLink->clean_results(); for (reset($ban_users); $username=current($ban_users); next($ban_users)) { $usrHash = md5($username); $VarName = "user_".$usrHash; if (!isset($$VarName)) continue; // Remove banishment if ($DELETE_MODE) { $VarName = "delete_".$usrHash; if (isset($$VarName)) { $uuu = addslashes($username); $DbLink->query("DELETE FROM ".C_BAN_TBL." WHERE username='$uuu'"); // Optimize the registered users table when a MySQL DB is used $DbLink->optimize(C_BAN_TBL); } } // Modify list of banished rooms for an user else { $VarName = "rooms_".$usrHash; $rrr = $$VarName; $VarName = "until_".$usrHash; $ttt = $$VarName; $VarName = "old_rooms_".$usrHash; $old_rrr = $$VarName; $VarName = "old_until_".$usrHash; $old_ttt = $$VarName; if ($rrr == $old_rrr && $ttt == $old_ttt) continue; $AddUntil = ($ttt == "forever" ? ", ban_until='2147483647'" : ""); $uuu = addslashes($username); $DbLink->query("UPDATE ".C_BAN_TBL." SET rooms='$rrr'".$AddUntil." WHERE username='$uuu'"); // banish the user if he's currently chatting if ($rrr == "*") { $DbLink->query("UPDATE ".C_USR_TBL." SET status='b' WHERE username='$uuu'"); } else { $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(); if (room_in(addslashes($room), $rrr)) $DbLink->query("UPDATE ".C_USR_TBL." SET status='b' WHERE username='$uuu'"); } else { $DbLink->clean_results(); }; }; }; }; }; // Remove banishment of users when necessary (time for banishment expire or no room) $ToCheck = "rooms = ''"; if (!isset($FORM_SEND)) $ToCheck = "ban_until < ".time()." OR ".$ToCheck; $DbLink->query("DELETE FROM ".C_BAN_TBL." WHERE ".$ToCheck); ?>
|
|||