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

📄 colony.php

📁 很好的一套PHP树形论坛程序
💻 PHP
📖 第 1 页 / 共 2 页
字号:
			'cname'		=> $cydb['cname'],
		);
		colonylog($log);

		require_once(R_P.'require/msg.php');
		$message=array(
			$cydb['admin'],
			$winduid,
			'donate_title',
			$timestamp,
			'donate_content',
			'',
			$windid
		);
		writenewmsg($message,1);

		Showmsg('colony_donatesuccess');
	}
}elseif ($job=='donatelog'){
	require_once GetLang('log');
	include_once(R_P.'require/forum.php');

	(!is_numeric($page) || $page < 1) && $page = 1;
	$limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage";
	$rt    = $db->get_one("SELECT COUNT(*) AS sum FROM pw_forumlog WHERE field2='$cyid' AND type='cy_donate'");
	$pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"$basename&cyid=$cyid&job=donatelog&");

	$logdb=array();
	$query = $db->query("SELECT * FROM pw_forumlog WHERE field2='$cyid' AND type='cy_donate' ORDER BY id DESC $limit");
	while($rt = $db->fetch_array($query)){
		$rt['date']    = get_date($rt['timestamp']);
		$rt['descrip'] = str_replace(array('[b]','[/b]'),array('<b>','</b>'),$rt['descrip']);
		$logdb[] = $rt;
	}
	require_once PrintEot('colony');footer();
}elseif ($job=='quit'){
	if ($cydb['admin'] == $windid){
		Showmsg('colony_quitfail');
	}else{
		if (!$cydb){
			Showmsg('undefined_action');
		}
		$db->update("UPDATE pw_colonys SET members=members-1 WHERE id='$cyid'");
		$db->update("DELETE FROM pw_cmembers WHERE colonyid='$cyid' AND uid='$winduid'");
		refreshto($basename,'colony_quitsuccess');
	}
}elseif ($job=='set'){
	if($cydb['ifadmin'] != 1){
		Showmsg('colony_adminright');
	}
	if (!$step){
		if ($cydb['ifcheck']=='1'){
			$ifcheck_1='checked';
			$ifcheck_0='';
		}else{
			$ifcheck_0='checked';
			$ifcheck_1='';
		}
		if ($cydb['annoucesee']=='1'){
			$annoucesee_1='checked';
			$annoucesee_0='';
		}else{
			$annoucesee_0='checked';
			$annoucesee_1='';
		}
		if($cn_joinmoney && $cydb['intomoney'] < $cn_joinmoney){
			$cydb['intomoney'] = $cn_joinmoney;
		}
		$classdb = array();
		$query = $db->query("SELECT * FROM pw_cnclass");
		while ($rt = $db->fetch_array($query)){
			$classdb[] = $rt;
		}
		require_once PrintEot('colony');footer();
	}elseif ($step == '2'){
		!$cname && Showmsg('colony_emptyname');
		if($cydb['cname'] != $cname){
			$rt = $db->get_one("SELECT id FROM pw_colonys WHERE cname='$cname'");
			if ($rt['id']){
				Showmsg('colony_samename');
			}
		}
		$cname		= Char_cv($cname);
		$descrip	= Char_cv($descrip);
		$annouce	= Char_cv($annouce);
		if(strlen($cname) > 20){
			Showmsg('colony_cnamelimit');
		}
		if(strlen($descrip) > 255){
			Showmsg('colony_descriplimit');
		}
		if(strlen($annouce) > 255){
			Showmsg('colony_annoucelimit');
		}
		$attachment=$_FILES['attachment'];
		if (is_array($attachment)){
			$attachment_name=$attachment['name'];
			$attachment_size=$attachment['size'];
			$attachment=$attachment['tmp_name'];
		}
		if($attachment){
			require_once(R_P.'require/postfunc.php');
			if(!if_uploaded_file($attachment)){
				Showmsg('colony_uploadfail');
			}
			$attach_ext = substr(strrchr($attachment_name,'.'),1);
			if (!in_array($attach_ext, array('gif','jpg','bmp'))) {
				Showmsg('illegal_imgtype');
			}
			$filename = "$imgdir/cn_img/colony_$cyid.$attach_ext";
			!$cn_imgsize && $cn_imgsize=1024000;
			if ($attachment_size > $cn_imgsize){
				Showmsg('colony_sizelimit');
			}
			if(postupload($attachment,$filename)){
				$cnimg = ",cnimg='colony_$cyid.$attach_ext'";
			} else {				
				Showmsg('colony_uploadfail');
			}
		} else{
			$cnimg = '';
		}
		if (function_exists('getimagesize') && $cnimg && !(list($width,$height)=getimagesize($filename))){
			P_unlink($filename);
			$db->update("UPDATE pw_colonys SET cnimg='' WHERE id='$cyid'");
			Showmsg('pro_loadimg_error');
		}
		if ($cn_imgwidth && $cn_imgheight && ($width > $cn_imgwidth || $height > $cn_imgheight)){
			P_unlink($filename);
			$db->update("UPDATE pw_colonys SET cnimg='' WHERE id='$cyid'");
			Showmsg('colony_lenthlimit');
		}
		unset($width,$height);
	
		$intomoney = (int)$intomoney;
		if($cn_joinmoney && $intomoney < $cn_joinmoney){
			$intomoney = $cn_joinmoney;
		}
		if($intomoney < 0){
			Showmsg('numerics_checkfailed');
		}
		$db->update("UPDATE pw_colonys SET cname='$cname',classid='$classid',ifcheck='$ifcheck' $cnimg,intomoney='$intomoney',annouce='$annouce',annoucesee='$annoucesee',descrip='$descrip' WHERE id='$cyid'");
		refreshto("$basename&cyid=$cyid&job=view&id=$cyid",'colony_setsuccess');
	}
} elseif ($job=='member'){
	if($cydb['ifadmin'] != 1){
		Showmsg('colony_adminright');
	}
	if(!$action){
		(!is_numeric($page) || $page < 1) && $page = 1;
		$limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage";
		$pages = numofpage($cydb['members'],$page,ceil($cydb['members']/$db_perpage),"$basename&cyid=$cyid&job=member&");

		$query = $db->query("SELECT * FROM pw_cmembers WHERE colonyid='$cyid' $limit");
		while($rt = $db->fetch_array($query)){
			!$rt['realname'] && $rt['realname'] = $rt['username'];
			$memberdb[] = $rt;
		}
		require_once PrintEot('colony');footer();
	} else{
		$selids = 0;
		foreach($selid as $key => $value){
			!is_numeric($value) && Showmsg('numerics_checkfailed');
			$selids .= ','.$value;
		}
		if($action == 'addadmin'){
			$windid != $cydb['admin'] && Showmsg('colony_manager');
			$db->update("UPDATE pw_cmembers SET ifadmin=1 WHERE uid IN($selids) AND colonyid='$cyid'");
			Showmsg('colony_addamin');
		} elseif($action == 'deladmin'){
			$windid != $cydb['admin'] && Showmsg('colony_manager');
			$query = $db->query("SELECT * FROM pw_cmembers WHERE uid IN($selids) AND colonyid='$cyid'");
			while($rt = $db->fetch_array($query)){
				if($rt['username'] == $cydb['admin']){
					Showmsg('colony_delladminfail');
				}
			}
			$db->update("UPDATE pw_cmembers SET ifadmin=0 WHERE uid IN($selids) AND colonyid='$cyid'");
			Showmsg('colony_deladmin');
		} elseif($action == 'pass'){
			require_once(R_P.'require/tool.php');
			$query = $db->query("SELECT c.uid,c.username,c.ifadmin,md.currency,md.onlineip FROM pw_cmembers c LEFT JOIN pw_memberdata md USING(uid) WHERE c.uid IN($selids)");
			while ($rt = $db->fetch_array($query)){
				if($rt['currency'] < $cydb['intomoney']){
					Showmsg('colony_passfail');
				}elseif($rt[ifadmin]=='-1'){
					$db->update("UPDATE pw_cmembers SET ifadmin=0 WHERE uid='$rt[uid]' AND colonyid='$cyid'");
					$db->update("UPDATE pw_memberdata SET currency=currency-'$cydb[intomoney]' WHERE uid='$rt[uid]'");
					$db->update("UPDATE pw_colonys SET cmoney=cmoney+'$cydb[intomoney]' WHERE id='$cyid'");

					if(strpos($rt['onlineip'],'|')!==false){
						$rt['onlineip'] = substr($rt['onlineip'],0,strpos($rt['onlineip'],'|'));
					}
					$logdata=array(
						'type'		=>	'join',
						'nums'		=>	0,
						'money'		=>	0,
						'descrip'	=>	'join_descrip',
						'uid'		=>	$rt['uid'],
						'username'	=>	$rt['username'],
						'ip'		=>	$rt['onlineip'],
						'time'		=>	$timestamp,
						'currency'	=>	$cydb['intomoney'],
						'cname'  	=>	$cydb['cname'],
					);
					writetoollog($logdata);

					$log = array(
						'type'      => 'cy_join',
						'username1' => $rt['username'],
						'username2' => $windid,
						'field1'    => $cydb['intomoney'],
						'field2'    => $cyid,
						'field3'    => $cydb['cname'],
						'descrip'   => 'join_descrip',
						'timestamp' => $timestamp,
						'ip'        => $onlineip,
					);
					colonylog($log);

					require_once(R_P.'require/msg.php');
					$message=array(
						$rt['username'],
						$winduid,
						'join_title',
						$timestamp,
						'join_content',
						'',
						$windid
					);
					writenewmsg($message,1);
				}
			}
			Showmsg('colony_pass');
		} elseif($action == 'del'){
			$query = $db->query("SELECT * FROM pw_cmembers WHERE uid IN($selids) AND colonyid='$cyid'");
			while($rt = $db->fetch_array($query)){
				if($rt['username'] == $cydb['admin']){
					Showmsg('colony_delfail');
				}elseif($windid != $cydb['admin'] && $rt['ifadmin'] == '1'){
					Showmsg('colony_manager');
				}
			}
			$count = count($selids);
			$db->update("DELETE FROM pw_cmembers WHERE uid IN($selids) AND colonyid='$cyid'");
			$db->update("UPDATE pw_colonys SET members=members-'$count' WHERE id='$cyid'");
			Showmsg('colony_del');
		}
	}
} elseif($job == 'currency'){
	$windid != $cydb['admin'] && Showmsg('colony_currency_right');
	!$cn_virement && Showmsg('colony_currency');

	if(!$_POST['step']){
		require_once PrintEot('colony');footer();
	}elseif($_POST['step']==2){
		$rt		= $db->get_one("SELECT uid FROM pw_cmembers WHERE username='$pwuser' AND colonyid='$cyid'");
		if(!$rt){
			Showmsg('no_colony_member');
		}
		$touid	= $rt['uid'];
		if(!is_numeric($currency) || $currency < 0){
			Showmsg('illegal_nums');
		}
		if(!$pwpwd){
			Showmsg('empty_password');
		}
		$rt = $db->get_one("SELECT uid FROM pw_members WHERE uid='$winduid' AND password='".md5($pwpwd)."'");
		if(!$rt){
			Showmsg('password_error');
		}
		$tax = round($currency * $cn_rate/100);
		$needcurrency = $currency + $tax;
		if($cydb['cmoney'] < $needcurrency){
			Showmsg('colony_noenough_currency');
		}
		$db->update("UPDATE pw_colonys SET cmoney=cmoney-'$currency' WHERE id='$cyid'");
		$db->update("UPDATE pw_memberdata SET currency=currency+'$currency' WHERE uid='$touid'");
		require_once(R_P.'require/tool.php');
		$logdata=array(
			'type'		=>	'vire',
			'nums'		=>	0,
			'money'		=>	0,
			'descrip'	=>	'cyvire_descrip',
			'uid'		=>	$winduid,
			'username'	=>	$windid,
			'ip'		=>	$onlineip,
			'time'		=>	$timestamp,
			'toname'	=>	$pwuser,
			'currency'	=>	$currency,
			'tax'		=>	$tax
		);
		writetoollog($logdata);

		$log = array(
			'type'      => 'cy_vire',
			'username1' => $pwuser,
			'username2' => $windid,
			'field1'    => $currency,
			'field2'    => $cyid,
			'field3'    => $cydb['cname'],
			'descrip'   => 'cy_vire_descrip',
			'timestamp' => $timestamp,
			'ip'        => $onlineip,
			'cname'		=> $cydb['cname'],
			'tax'		=> $tax
		);
		colonylog($log);

		require_once(R_P.'require/msg.php');
		$message=array(
			$pwuser,
			$winduid,
			'cyvire_title',
			$timestamp,
			'cyvire_content',
			'',
			$windid
		);
		writenewmsg($message,1);

		Showmsg('virement_success');
	}
}elseif($job=='currencylog'){
	require_once GetLang('log');
	include_once(R_P.'require/forum.php');

	(!is_numeric($page) || $page < 1) && $page = 1;
	$limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage";
	$rt    = $db->get_one("SELECT COUNT(*) AS sum FROM pw_forumlog WHERE field2='$cyid' AND type='cy_vire'");
	$pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"$basename&cyid=$cyid&job=currencylog&");

	$logdb=array();
	$query = $db->query("SELECT * FROM pw_forumlog WHERE field2='$cyid' AND type='cy_vire' ORDER BY id DESC $limit");
	while($rt = $db->fetch_array($query)){
		$rt['date']  = get_date($rt['timestamp']);
		$rt['descrip']= str_replace(array('[b]','[/b]'),array('<b>','</b>'),$rt['descrip']);
		$logdb[] = $rt;
	}
	require_once PrintEot('colony');footer();
}elseif($job=='joinlog'){
	require_once GetLang('log');
	include_once(R_P.'require/forum.php');

	(!is_numeric($page) || $page < 1) && $page = 1;
	$limit = "LIMIT ".($page-1)*$db_perpage.",$db_perpage";
	$rt    = $db->get_one("SELECT COUNT(*) AS sum FROM pw_forumlog WHERE field2='$cyid' AND type='cy_join'");
	$pages = numofpage($rt['sum'],$page,ceil($rt['sum']/$db_perpage),"$basename&cyid=$cyid&job=joinlog&");

	$logdb=array();
	$query = $db->query("SELECT * FROM pw_forumlog WHERE field2='$cyid' AND type='cy_join' ORDER BY id DESC $limit");
	while($rt = $db->fetch_array($query)){
		$rt['date']  = get_date($rt['timestamp']);
		$rt['descrip']= str_replace(array('[b]','[/b]'),array('<b>','</b>'),$rt['descrip']);
		$logdb[] = $rt;
	}
	require_once PrintEot('colony');footer();
}elseif ($job=='cancel'){
	if($cydb['admin']!=$windid){
		Showmsg('colony_cancel');
	}
	!$cn_remove && Showmsg('colony_cancelclose');
	P_unlink("$imgdir/cn_img/$cydb[cnimg]");
	$db->update("DELETE FROM pw_cmembers WHERE colonyid='$cyid'");
	$db->update("DELETE FROM pw_colonys WHERE id='$cyid'");
	refreshto($basename,'colony_cancelsuccess');
} else {
	Showmsg('undefined_action');
}

function colonylog($log){
	global $db;
	require GetLang('log');
	$log['username1']= Char_cv($log['username1']);
	$log['username2']= Char_cv($log['username2']);
	$log['field1']   = Char_cv($log['field1']);
	$log['field2']   = Char_cv($log['field2']);
	$log['field3']   = Char_cv($log['field3']);
	$log['descrip']  = Char_cv($lang[$log['descrip']]);
	$db->update("INSERT INTO pw_forumlog (type,username1,username2,field1,field2,field3,descrip,timestamp,ip) VALUES('$log[type]','$log[username1]','$log[username2]','$log[field1]','$log[field2]','$log[field3]','$log[descrip]','$log[timestamp]','$log[ip]')");
}
?>

⌨️ 快捷键说明

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