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

📄 dobanuser.php

📁 flashget43的源代码 一个比较常用的下载程序
💻 PHP
字号:
<?php
// start fix nr 2 for no bans on ChatOwner

			if(in_array($bannedUserID, $GLOBALS['fc_config']['ChatOwner'])) return;
// end fix

			$this->sendToUser($bannedUserID, new Message('banu', $this->userid, $banType, $txt));

			$roomid = null;
			$ip = null;

			$stmt = new Statement("SELECT id FROM {$GLOBALS['fc_config']['db']['pref']}connections WHERE userid=?  LIMIT 1");
			if(($rs = $stmt->process($bannedUserID)) && ($rec = $rs->next())) {
				$clientId = null;
				if(isset($GLOBALS['socket_server'])) $clientId = $GLOBALS['socket_server']->clientInfo['userid'][$bannedUserID];
				$conn = ChatServer::getConnection($rec, $clientId);
// start fix nr 3 for message to room users about bans

				$br = ChatServer::getUser($this->userid);
				$bd = ChatServer::getUser($bannedUserID);
				if($banType == BAN_BYROOMID) {$bt = 'room';}
				if($banType == BAN_BYUSERID || $banType == BAN_BYIP) {$bt = 'chat';}

				if($this->userid == $bannedUserID) $br['login'] = 'MODULE';
				$this->sendToRoom($conn->roomid, new Message('ralrt', $this->userid, null, '<BR>' . $br['login'] . ' bans ' . $bd['login'] . ' from ' . $bt . ' with message:<BR><BR>' . $txt));
// end of fix

				switch($banType) {
					case BAN_BYUSERID:
						$conn->doLogout('banned');
						break;
					case BAN_BYROOMID: 
						/*
						$roomid = $fromRoomID;
						if($conn->roomid == $fromRoomID) {
							if($fromRoomID == $this->getAvailableRoom($GLOBALS['fc_config']['defaultRoom'])) {
								$conn->doLogout('banned');
							} else {
								$conn->doMoveTo($this->getAvailableRoom($GLOBALS['fc_config']['defaultRoom']), 'banned');
							}
						}
						*/
						
						$roomid = $fromRoomID;
						$stmt = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}bans WHERE banneduserid=? AND roomid=?");
						if(!(($rs = $stmt->process($bannedUserID, $roomid)) && $rs->hasNext()))
						{
							$qry = "INSERT INTO {$GLOBALS['fc_config']['db']['pref']}bans 
									(created, userid, banneduserid, roomid, ip) 
									VALUES (NOW(), ?, ?, ?, ?)";
							$stmt = new Statement($qry);
							$stmt->process($this->userid, $bannedUserID, $roomid, $ip);
						}
						
						if($conn->roomid == $fromRoomID)
						{
							$stmt = new Statement("SELECT id FROM {$GLOBALS['fc_config']['db']['pref']}rooms WHERE password=''");
							$rs = $stmt->process();
							while( $rs->hasNext())
							{
							 	$i = $rs->next();
								$rec_rooms[] = $i['id'];
							}
									
							$stmt = new Statement("SELECT roomid FROM {$GLOBALS['fc_config']['db']['pref']}bans WHERE banneduserid=?");
							$rs = $stmt->process($bannedUserID);
							while( $rs->hasNext())
							{
							 	$i = $rs->next();
								$rec_bans[] = $i['roomid'];
							}
							
							$stmt = new Statement("SELECT roomid
												   FROM {$GLOBALS['fc_config']['db']['pref']}connections 
												   WHERE id<>? AND userid IS NOT NULL
												   GROUP BY roomid
												   HAVING COUNT(*) < {$GLOBALS['fc_config']['maxUsersPerRoom']}");
							$rs = $stmt->process($bannedUserID);
							while( $rs->hasNext())
							{
							 	$i = $rs->next();
								$rec_full[] = $i['roomid'];
							}
													
							$free_rooms = (count($rec_bans) > 0)? array_diff($rec_rooms, $rec_bans) : $rec_rooms;
							$free_rooms = (count($rec_full) > 0)? array_diff($free_rooms, $rec_full) : $free_rooms;
							
							$id = array_pop(array_reverse($free_rooms));
							
							if( $id )
							{
								$conn->doMoveTo($id, 'banned');
							} 
							else
							{
								$conn->doLogout('banned');
							}
						}
						break;
					case BAN_BYIP: 
						$ip = $conn->ip;
						$conn->doLogout('banned!#@#!'.$this->userid.'!#@#!'.$txt);
						break;
				}
			}
			
			if($banType != BAN_BYROOMID)
			{
				$stmt = new Statement("SELECT * FROM {$GLOBALS['fc_config']['db']['pref']}bans WHERE banneduserid=?");
				if(($rs = $stmt->process($bannedUserID)) && $rs->hasNext()) {
					$stmt = new Statement("UPDATE {$GLOBALS['fc_config']['db']['pref']}bans SET created=NOW(), userid=?, roomid=?, ip=? WHERE banneduserid=?");
					$stmt->process($this->userid, $roomid, $ip, $bannedUserID);
				} else {
					$stmt = new Statement("INSERT INTO {$GLOBALS['fc_config']['db']['pref']}bans (created, userid, banneduserid, roomid, ip) VALUES (NOW(), ?, ?, ?, ?)");
					$stmt->process($this->userid, $bannedUserID, $roomid, $ip);
				}
			}
?>

⌨️ 快捷键说明

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