⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 admin3.php3

📁 使用PHP编程的聊天室
💻 PHP3
字号:
<?php
// This sheet is diplayed when the admin wants to clean some rooms

if (isset($FORM_SEND) && $FORM_SEND == 3)
{
	for (reset($DelRooms); $room=current($DelRooms); next($DelRooms))
	{
		// Kicks users that are in the room
		$DbLink->query("UPDATE ".C_USR_TBL." SET status='d' WHERE room='$room'");
		$DbLink->query("SELECT COUNT(*) FROM ".C_USR_TBL." WHERE room='$room'");
		list($anybody) = $DbLink->next_record();
		$DbLink->clean_results();
		$i = time() + 20;	// let the time to users to be 'kicked' (max=20 sec)
		while ($anybody != 0 && time() < $i)
		{
			$DbLink->query("SELECT COUNT(*) FROM ".C_USR_TBL." WHERE room='$room'");
			list($anybody) = $DbLink->next_record();
			$DbLink->clean_results();
			sleep(2);
		}
		// Remove permissions for that room when it's not a default one (define in config.lib.php3)
		if (!room_in(stripslashes($room), $DefaultChatRooms))
		{
			$UpdLink = new DB;
			$DbLink->query("SELECT username,rooms FROM ".C_REG_TBL." WHERE perms='moderator'");
			while (list($mod_un,$mod_rooms) = $DbLink->next_record())
			{
				$changed = false;
				$roomTab = explode(",",$mod_rooms);
				for ($i = 0; $i < count($roomTab); $i++)
				{
					if (strcasecmp(stripslashes($room), $roomTab[$i]) == 0)
					{
						$roomTab[$i] = "";
						$changed = true;
						break;
					};
				};
				if ($changed)
				{
					$mod_rooms = str_replace(",,",",",ereg_replace("^,|,$","",implode(",",$roomTab)));
					$UpdLink->query("UPDATE ".C_REG_TBL." SET rooms='".addslashes($mod_rooms)."' WHERE username='".addslashes($mod_un)."'");
				};
				unset($roomTab);
			};
			$DbLink->clean_results();
		};
		// Clean the room;
		$DbLink->query("DELETE FROM ".C_USR_TBL." WHERE room='$room'");
		$DbLink->query("DELETE FROM ".C_MSG_TBL." WHERE room='$room'");
	};
	// Optimize the messages table when a MySQL DB is used
	if (C_DB_TYPE == "mysql") $DbLink->optimize(C_MSG_TBL);
};
?>

<TABLE BORDER=0 CELLPADDING=3 CLASS=table>

<?php
// Ensure at least one room can be cleaned before displaying the form to do this
$DbLink->query("SELECT COUNT(*) FROM ".C_MSG_TBL." LIMIT 1");
list($count_Rooms) = $DbLink->next_record();
$DbLink->clean_results();
if ($count_Rooms != 0)
{
?>

<!-- Form to clean rooms -->
<TR>
	<TD ALIGN=CENTER>
		<FORM ACTION="<?php echo("$From?$URLQueryBody"); ?>" METHOD="POST" AUTOCOMPLETE="OFF" NAME="Form2">
		<INPUT TYPE=hidden NAME="From" value="<?php echo($From); ?>">
		<INPUT TYPE=hidden NAME="user" value="<?php echo(htmlspecialchars(stripslashes($user))); ?>">
		<INPUT TYPE=hidden NAME="pswd" value="<?php echo($pswd); ?>">
		<INPUT TYPE=hidden NAME="FORM_SEND" value="3">
		<TABLE BORDER=0 WIDTH=100%>
		<TR>
			<TH COLSPAN=4 CLASS=tabtitle><?php echo(A_SHEET3_1); ?></TH>
		</TR>

		<TR>
			<TD VALIGN=CENTER ALIGN=CENTER>
				<FONT size=-1><?php echo(A_SHEET3_2); ?></FONT>
			</TD>
		</TR>
		<TR>
			<TD ALIGN=CENTER>
				<SELECT NAME="DelRooms[]" MULTIPLE SIZE=6>
				<?php
				$DbLink->query("SELECT DISTINCT room FROM ".C_MSG_TBL);
				while (list($room) = $DbLink->next_record())
				{
					echo("<OPTION VALUE=\"".htmlspecialchars($room)."\"");
					echo(">".$room."</OPTION>");
				}
				$DbLink->clean_results();
				?>
				</SELECT>
			</TD>
		</TR>
		</TABLE>
		<P>
		<INPUT TYPE="submit" NAME=submit_type VALUE="<?php echo(A_SHEET3_3); ?>">
		</P>
		</FORM>
	</TD>
</TR>

<?php
}
else
{
?>

<TR>
	<TH COLSPAN=4>
		<TABLE BORDER=0 WIDTH=100%>
		<TR>
			<TH COLSPAN=4 CLASS=tabtitle><?php echo(A_SHEET3_1); ?></TH>
		</TR>
		<TR><TD>&nbsp;</TD></TR>
		<TR>
			<TD COLSPAN=4 ALIGN=CENTER CLASS=error><?php echo(A_SHEET3_4); ?></TD>
		</TR>
		</TABLE>
	</TH>
</TR>

<?php
};
?>

</TABLE>

<?php
?>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -