View file wip-site-portal/src/chat_moder.php

File size: 16.67Kb
<?
require('ini.php');

$link=connect();
$user=login('nick, chat_moder');

@$mod=($_GET['mod'])?$_GET['mod']:$_POST['mod'];

if(!$user['chat_moder']){
	head('Ошибка!',15,'enter.php?sid='.$sid);
	echo '<small>Вы не модер!</small>';
	foot();
	exit();
}

head('Модерка чата');

switch($mod){
	
	default:
		echo '<small>Ник:</small><br/>';
		echo '<input name="nick'.$ref.'" type="text" maxlength="30"/>';
		echo '<select name="mod'.$ref.'">';
		echo '<option value="">[Действие]</option>';
		echo '<option value="info">Информация</option>';
		echo '<option value="ban">Забанить</option>';
		echo '<option value="full_ignor">Полный игнор</option>';
		echo '</select> ';
		echo '<small><anchor>OK<go href="chat_moder.php?sid='.$sid.'" method="post">';
		echo '<postfield name="mod" value="$(mod'.$ref.')"/>';
		echo '<postfield name="nick" value="$(nick'.$ref.')"/>';
		echo '</go></anchor><br/>';
		echo '---<br/>';
		echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=bans">Список банов</a><br/>';
		echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=ignors">Список полного игнора</a><br/>';
		echo '---<br/>';
		echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=tell">Написать во все комнаты</a><br/>';
		echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=clear">Очистить комнаты</a><br/>';
		echo '---<br/>';
		echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=board">Объявления</a><br/>';
		echo '</small>';
		break;
	
	case 'info':
		@$nick=htmlspecialchars($_POST['nick'],ENT_QUOTES);
		
		$select=mysql_query("SELECT `id`, `nick`, `chat_admin`, `chat_moder`, `chat_posts`, `chat_status` FROM `wip_users` WHERE `nick`='".$nick."';");
		if(mysql_affected_rows()<1){
			echo '<small>Неверный ник!</small><br/>';
			break;
		}
		
		$res=mysql_fetch_assoc($select);
		
		echo '<small><b>ID:</b> '.$res['id'].' <a href="user.php?sid='.$sid.'&amp;uid='.$res['id'].'">[i]</a><br/>';
		echo '<b>Ник:</b> '.$res['nick'].'<br/>';
		echo '---<br/></small>';
		
		if($res['chat_moder']==1 or $res['chat_admin']==1){
			echo '<small>Вы не можете ничего менять у админа или модера!</small><br/>';
			break;
		}
		
		echo '<small>Новый пароль:</small><br/>';
		echo '<input name="npass'.$ref.'" type="text" maxlength="20"/><br/>';

		echo '<small>Постов в чате:</small><br/>';
		echo '<input name="posts'.$ref.'" format="*N" value="'.$res['chat_posts'].'"/><br/>';
		
		echo '<small>Экстра-статус:</small><br/>';
		echo '<input name="status'.$ref.'" type="text" value="'.$res['chat_status'].'" maxlength="100"/><br/>';
		echo '<small><anchor>Сохранить<go href="chat_moder.php?sid='.$sid.'&amp;mod=info_save&amp;uid='.$res['id'].'" method="post">';
		echo '<postfield name="npass" value="$(npass'.$ref.')"/>';
		echo '<postfield name="posts" value="$(posts'.$ref.')"/>';
		echo '<postfield name="status" value="$(status'.$ref.')"/>';
		echo '</go></anchor></small><br/>';
		break;
		
	case 'info_save':
		@$uid=intval($_GET['uid']);
		@$npass=substr(trim(htmlspecialchars($_POST['npass'],ENT_QUOTES)),0,60);;
		@$posts=intval($_POST['posts']);
		@$status=trim(htmlspecialchars($_POST['status'],ENT_QUOTES));
		
		$select=mysql_query("select nick from wip_users where id='$uid';");
		if(mysql_affected_rows()<1){
			echo '<small>Неверный юзер!</small><br/>';
		}

		$select=mysql_query("select name from wip_regions where id='$city';");
		if(mysql_affected_rows()<1){
			echo '<small>Неверный код региона/страны!<br/>';
			echo '<anchor>Назад<prev/></anchor><br/></small>';
			break;
		}

		$upd_pass=false;
		if($npass){
			if (preg_match("/[^a-z0-9]+/i",$pass)){
				echo '<small>Неверно введён пароль!<br/>';
				echo '<anchor>Назад<prev/></anchor><br/></small>';
				break;
			}
			
			$upd_pass="pass='".md5($pass)."', ";
		}
		
		mysql_query("UPDATE `wip_users` SET $upd_pass `chat_posts`='".$posts."', `chat_status`='".$status."' WHERE `id`='".$uid."';");
		
		echo '<small>Информация о пользователе сохранена!</small><br/>';
		break;	
	
	case 'ban':
		@$nick=htmlspecialchars($_POST['nick'],ENT_QUOTES);
		
		$select=mysql_query("select nick, id, chat_admin, chat_moder from wip_users where nick='$nick';");
		if(mysql_affected_rows()<1){
			echo '<small>Неверный ник!</small><br/>';
			break;
		}
		
		$res=mysql_fetch_row($select);
		
		if($res['chat_moder']==1 or $res['chat_admin']==1){
			echo '<small>Вы не можете забанить админа или модера!</small><br/>';
			break;
		}
		
		echo '<small>Забанить <b>'.$res[0].'</b>:<br/>';
		echo '* Время:</small><br/>';
		echo '<input name="day'.$ref.'" maxlength="3" format="*N" value="0" size="3"/> <small>дней (0-365)</small> ';
		echo '<input name="hour'.$ref.'" maxlength="2" format="*N" value="0" size="2"/> <small>часов (0-59)</small> ';
		echo '<input name="min'.$ref.'" maxlength="2" format="*N" value="0" size="2"/> <small>минут (0-59)</small><br/>';
		echo '<small>* Причина:</small><br/>';
		echo '<input name="reason'.$ref.'" type="text" maxlength="100"/><br/>';
		echo '<small><anchor>Забанить<go href="chat_moder.php?sid='.$sid.'&amp;mod=ban_save&amp;uid='.$res[1].'" method="post">';
		echo '<postfield name="day" value="$(day'.$ref.')"/>';
		echo '<postfield name="hour" value="$(hour'.$ref.')"/>';
		echo '<postfield name="min" value="$(min'.$ref.')"/>';
		echo '<postfield name="reason" value="$(reason'.$ref.')"/>';
		echo '</go></anchor></small><br/>';
		break;
		
	case 'ban_save':
		@$uid=intval($_GET['uid']);
		@$day=substr(intval($_POST['day']),0,3);
		@$hour=substr(intval($_POST['hour']),0,2);
		@$min=substr(intval($_POST['min']),0,2);
		@$reason=substr(trim(htmlspecialchars($_POST['reason'],ENT_QUOTES)),0,100);
		
		$select=mysql_query("select nick, chat_admin, chat_moder from wip_users where id='$uid';");
		if(mysql_affected_rows()<1){
			echo '<small>Неверный юзер!</small><br/>';
		}
		$res=mysql_fetch_row($select);
		
		if($res['chat_moder']==1 or $res['chat_admin']==1){
			echo '<small>Вы не можете забанить админа или модера!</small><br/>';
			break;
		}
		
		if(($day<0 and $day>365) or ($hour<0 and $hour>59) or ($min<0 and $min>59)){
			echo '<small>Неверно установлено время!<br/>';
			echo '<anchor>Назад<prev/></anchor><br/></small>';
			break;
		}
		
		if(!$reason){
			echo '<small>Вы должны ввести причину бана!<br/>';
			echo '<anchor>Назад<prev/></anchor><br/></small>';
			break;
		}
		
		$ban_time=time()+($day*86400+$hour*3600+$min*60);
		
		mysql_query("select id from wip_bans where uid='$uid' and loc='chat';");
		
		if(mysql_affected_rows()<1) mysql_query("insert into wip_bans set uid='$uid', who='$user[id]', time='$ban_time', reason='$reason', loc='chat';");
		else mysql_query("update wip_bans set who='$user[id]', time='$ban_time', reason='$reason', loc='chat' where uid='$uid';");
		
		echo '<small><b>'.$res[0].'</b> забанен!</small><br/>';
		break;
		
	case 'full_ignor':
		@$nick=htmlspecialchars($_POST['nick'],ENT_QUOTES);
		
		$select=mysql_query("select nick, id, chat_admin, chat_moder from wip_users where nick='$nick';");
		if(mysql_affected_rows()<1){
			echo '<small>Неверный ник!</small><br/>';
			break;
		}
		
		$res=mysql_fetch_row($select);
		
		if($res['chat_moder']==1 or $res['chat_admin']==1){
			echo '<small>Вы не можете сделать полный игнор на админа или модера!</small><br/>';
			break;
		}
		
		mysql_query("update wip_users set chat_full_ignor=1 where id='$res[1]';");
		echo '<small><b>'.$res[0].'</b> добавлен в полный игнор!</small><br/>';
		break;
		
		
	case 'bans':
		$select=mysql_query("select wip_bans.uid, wip_bans.who, wip_users.nick, wip_bans.time, wip_bans.reason from wip_bans, wip_users where wip_users.id=wip_bans.uid and wip_bans.time>'".time()."' and wip_bans.loc='chat';");
		if(mysql_affected_rows()<1){
			echo '<small>Забаненых нет!<br/>---<br/></small>';
			break;
		}
		
		echo '<small>';
		echo '<b>Список банов:</b><br/>---<br/>';
		
		while($res=mysql_fetch_assoc($select)){
			//Определяем время бана:
			$str_diff=false;
			$diff=$res['time']-time();
				
			if($diff>=3600){
				$hor=floor($diff/3600);
				if($hor!=0) $str_diff=$hor.' часов ';
			}
			
			if($diff>=60){
				$min=floor(($diff%3600)/60);
				if($min!=0) $str_diff.=$min.' минут ';
			}
				
			$sec=floor($diff%60);
			if($sec!=0) $str_diff.=$sec.' секунд ';
			/////
			
			
			$who=mysql_fetch_row(mysql_query("select nick from wip_users where id='$res[who]';"));
			echo '<a href="user.php?sid='.$sid.'&amp;uid='.$res['uid'].'">'.$res['nick'].'</a><br/>';
			echo '<b>Забанил:</b> '.$who[0].'<br/>';
			echo '<b>Время бана:</b> '.$str_diff.'<br/>';
			echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=unban&amp;uid='.$res['uid'].'">Разбанить</a><br/>';
			echo '---<br/>';
		}
		echo '</small>';
		break;
		
		
	case 'unban':
		@$uid=intval($_GET['uid']);
		
		mysql_query("select id from wip_bans where time>'".time()."' and loc='chat' and uid='$uid';");
		if(mysql_affected_rows()<1){
			echo '<small>Пользователь не значится в списке банов чата<br/>';
			echo '<anchor>Назад<prev/></anchor></small><br/>';
			break;
		}
		
		mysql_query("delete from wip_bans where uid='$uid' and loc='chat';");
		echo '<small>Пользователь разбанен!<br/>';
		echo '<anchor>Назад<prev/></anchor></small><br/>';
		break;
		
		
	case 'ignors':
		$select=mysql_query("select id,nick from wip_users where chat_full_ignor=1;");
		if(mysql_affected_rows()<1){
			echo '<small>Список полного игнора пуст!</small><br/>';
			break;
		}
		
		echo '<small>';
		echo '<b>Список полного игнора:</b><br/>---<br/>';
		
		while($res=mysql_fetch_assoc($select)) echo '<a href="user.php?sid='.$sid.'&amp;uid='.$res['id'].'">'.$res['nick'].'</a> <a href="chat_moder.php?sid='.$sid.'&amp;mod=unignor&amp;uid='.$res['id'].'">[x]</a><br/>';
		
		echo '</small>';	
		break;
	
		
	case 'unignor':
		@$uid=intval($_GET['uid']);
		
		mysql_query("select id from wip_users where id='$uid' and chat_full_ignor=1;");
		if(mysql_affected_rows()<1){
			echo '<small>Пользователь не находится в полном игноре!<br/>';
			echo '<anchor>Назад<prev/></anchor></small><br/>';
			break;
		}
		
		mysql_query("UPDATE `wip_users` SET `chat_full_ignor`=0 WHERE `id`='".$uid."';");
		
		
		echo '<small>Пользователь удален из полного игнора!<br/>';
		echo '<anchor>Назад<prev/></anchor></small><br/>';
		break;
			
	case 'clear':
		mysql_query("truncate table wip_chat_msgs;");
		echo '<small>Комнаты чата очищены!</small><br/>';
		break;
		
	case 'tell':
		@$msg=trim(htmlspecialchars($_POST['msg'],ENT_QUOTES));
		
		if(!$msg){
			echo '<small>Сообщение:</small><br/>';
			echo '<input name="msg'.$ref.'" type="text" maxlength="400"/> ';
			echo '<small><anchor>Сказать<go href="chat_moder.php?sid='.$sid.'&amp;mod=tell" method="post">';
			echo '<postfield name="msg" value="$(msg'.$ref.')"/>';
			echo '</go></anchor></small><br/>';
			break;
		}
		
		$msg='<b>Важное сообщение:</b> '.$msg;
		
		$select=mysql_query("select id from wip_chat_rooms;");
		while($res=mysql_fetch_row($select)) mysql_query("insert into wip_chat_msgs set rid='$res[0]', uid='$user[id]', time='".time()."', msg='$msg';");

		echo '<small>Сообщение отослано во все комнаты!</small><br/>';		
		break;
	
	case 'board':
		echo '<small>';
		
		$select=mysql_query("select b.uid, u.nick, b.id, b.subj, b.time, b.msg from wip_chat_board as b, wip_users as u where u.id=b.uid;");
		if(mysql_affected_rows()<1){
			echo 'Объявлений нет<br/>---<br/>';
		}
		
		else {
			while($res=mysql_fetch_assoc($select)){
				echo $res['subj'].', '.date('d.m.Y H:i', $res['time']).'  [<a href="user.php?sid='.$sid.'&amp;uid='.$res['uid'].'">'.$res['nick'].'</a>]<br/>';
				echo $res['msg'].'<br/>';
				echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=board_edit&amp;bid='.$res['id'].'">Изменить</a> | ';
				echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=board_del&amp;bid='.$res['id'].'">Удалить</a><br/>';
				echo '---<br/>';
			}
			
		}
		
		echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=board_add">Добавить</a><br/>';
		echo '</small>';
		break;
		
	case 'board_del':
		
		@$bid=intval($_GET['bid']);
		
		$select=mysql_query("SELECT `id`, `subj` FROM `wip_chat_board` WHERE `id`='".$bid."';");
		
		if(mysql_affected_rows()<1){
			echo '<small>Неверное объявление!</small><br/>';
			break;
		}
		
		@$act=$_GET['act'];
		
		if(!$act){
			$res=mysql_fetch_row($select);
			
			echo '<small>Удалить объявление <b>'.$res[1].'</b> ?<br/>';
			echo '<a href="chat_moder.php?sid='.$sid.'&amp;mod=board_del&amp;bid='.$bid.'&amp;act=ok">Да</a>/<a href="chat_moder.php?sid='.$sid.'&amp;mod=board">Нет</a></small><br/>';
			break;
		}
		
		mysql_query("DELETE FROM `wip_chat_board` WHERE `id`='".$bid."';");
		echo '<small>Объявление удалено!<br/><a href="chat_moder.php?sid='.$sid.'&amp;mod=board">Объявления</a></small><br/>';
		break;
		
		
	case 'board_add':
		
		@$subj=trim(htmlspecialchars($_POST['subj'], ENT_QUOTES));
		@$msg=substr(trim(htmlspecialchars($_POST['msg'], ENT_QUOTES)), 0, 2000);
		
		if(!$msg or !$subj){
			echo '<small>Тема:</small><br/><input name="subj'.$ref.'" type="text" maxlength="30"/><br/>';
			echo '<small>Объявление:</small><br/><input name="msg'.$ref.'" type="text" maxlength="1000"/><br/>';
			echo '<small><anchor>Добавить<go href="chat_moder.php?sid='.$sid.'&amp;mod=board_add" method="post">';
			echo '<postfield name="subj" value="$(subj'.$ref.')"/>';
			echo '<postfield name="msg" value="$(msg'.$ref.')"/>';
			echo '</go></anchor></small><br/>';
			break;
		}
		
		mysql_query("SELECT `id` FROM `wip_chat_board` WHERE `subj`='".$subj."';");
		if(mysql_affected_rows()>0){
			echo '<small>Объявление с такой темой уже существует!</small><br/>';
			break;
		}
		
		mysql_query("INSERT INTO `wip_chat_board` SET `uid`='".$user['id']."', `time`='".time()."', subj='".$subj."', msg='".$msg."';");
		echo '<small>Объявление успешно добавлено!<br/><a href="chat_moder.php?sid='.$sid.'&amp;mod=board">Объявления</a></small><br/>';
		
		break;
		
		
	case 'board_edit':
		
		@$bid=intval($_GET['bid']);
		@$subj=trim(htmlspecialchars($_POST['subj'], ENT_QUOTES));
		@$msg=substr(trim(htmlspecialchars($_POST['msg'], ENT_QUOTES)), 0, 2000);
		
		$select=mysql_query("SELECT `id`, `subj`, `msg` FROM `wip_chat_board` WHERE `id`='".$bid."';");
		
		if(mysql_affected_rows()<1){
			echo '<small>Неверное объявление!</small><br/>';
			break;
		}
		
		if(!$msg or !$subj){
		
			$res=mysql_fetch_assoc($select);
			
			echo '<small>Тема:</small><br/><input name="subj'.$ref.'" type="text" maxlength="30" value="'.$res['subj'].'"/><br/>';
			echo '<small>Объявление:</small><br/><input name="msg'.$ref.'" type="text" maxlength="1000" value="'.$res['msg'].'"/><br/>';
			echo '<small><anchor>Сохранить<go href="chat_moder.php?sid='.$sid.'&amp;mod=board_edit&amp;bid='.$bid.'" method="post">';
			echo '<postfield name="subj" value="$(subj'.$ref.')"/>';
			echo '<postfield name="msg" value="$(msg'.$ref.')"/>';
			echo '</go></anchor></small><br/>';
			break;
		}
		
		mysql_query("UPDATE `wip_chat_board` SET `msg`='".$msg."', `subj`='".$subj."' WHERE `id`='".$bid."';");
		echo '<small>Объявление изменено!<br/><a href="chat_moder.php?sid='.$sid.'&amp;mod=board">Объявления</a></small><br/>';
		
		break;
		
}


echo '<small>';
if($mod!='bans') echo '---<br/>';
if($mod) echo '<a href="chat_moder.php?sid='.$sid.'">Модерка</a><br/>';
echo '<a href="chat.php?sid='.$sid.'">Список комнат</a><br/>';
echo '<a href="enter.php?sid='.$sid.'">Главное меню</a>';
echo '</small>';
foot();
mysql_close($link);
?>