www.gusucode.com > 08CMS空白站群系统 3.3 繁体 UTF-8 > upload/admina/members.inc.php

    <?
(!defined('M_COM') || !defined('M_ADMIN')) && exit('No Permission');
aheader();
load_cache('mchannels,catalogs,cotypes,mtconfigs,channels,grouptypes,currencys,rprojects');
include_once M_ROOT."./include/upload.cls.php";
include_once M_ROOT."./include/fields.fun.php";
include_once M_ROOT."./include/fields.cls.php";
if($action == 'memberadd' && empty($mchid)){
	!checkapermission(4) && amessage(lang('no_apermission'));
	if($sid && $sid_self) amessage(lang('msite admin item !'));
	a_guide('memberadd0');
	$num = 4;
	tabheader(lang('according channel add member'),'','',$num);
	$i = 0;
	foreach($mchannels as $k => $v){
		if(!($i % $num)) echo "<tr>";
		echo "<td class=\"item2\" width=\"25%\"> &nbsp;>> &nbsp;<a href=\"?entry=members&action=memberadd&mchid=$k\">$v[cname]</a></td>\n";
		$i ++;
		if(!($i % $num)) echo "</tr>\n";
	}
	if($i % $num){
		while($i % $num){
			echo "<td class=\"item2\" width=\"25%\"></td>\n";
			$i ++;
		}
		echo "</tr>\n";
	}
	tabfooter();
}elseif($action == 'memberadd' && $mchid){
	!checkapermission(4) && amessage(lang('no_apermission'));
	if($sid && $sid_self) amessage(lang('msite admin item !'));
	$mchid = empty($mchid) ? 1 : max(1,intval($mchid));
	if(!($mchannel = $mchannels[$mchid])) amessage(lang('confirmchoose member channel'));
	$mfields = read_cache('mfields',$mchid);
	if(!submitcheck('bmemberadd')){
		a_guide('memberadd');	
		$a_field = new cls_field;
		$submitstr = '';
		tabheader(lang('based option').'&nbsp;- &nbsp; '.lang('add').$mchannels[$mchid]['cname'],'memberadd','?entry=members&action=memberadd&mchid='.$mchid,2,1,1);
		trbasic(lang('member cname').'&nbsp;*','minfosadd[mname]');
		trbasic(lang('password').'&nbsp;*','minfosadd[password]','','password');
		trbasic(lang('Email').'&nbsp;*','minfosadd[email]');
		$submitstr .= makesubmitstr('minfosadd[mname]',1,0,0,15);
		$submitstr .= makesubmitstr('minfosadd[password]',1,0,0,15);
		$submitstr .= makesubmitstr('minfosadd[email]',1,'email',0,50);
		trbasic(lang('space template project'),'minfosadd[mtcid]',makeoption(mtcidsarr($mchid)),'select');
		foreach($mfields as $k => $field){
			if(!$field['issystem'] && !$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('mfield',$mchid,$k);
				$a_field->isadd = 1;
				$a_field->trfield('minfosadd');
				$submitstr .= $a_field->submitstr;
			}
		}
		tabfooter();
		tabheader(lang('usergroup message'),'','',4);
		foreach($grouptypes as $gtid => $grouptype) {
			if(empty($grouptype['mode']) && !in_array($mchid,explode(',',$grouptype['mchids']))){
				$ugidsarr = array('0' => lang('nosetting')) + ugidsarr($grouptype['gtid'],$mchid);
				echo "<tr>\n".
					"<td width=\"15%\" class=\"item1\">$grouptype[cname]</td>\n".
					"<td width=\"35%\" class=\"item2\"><select style=\"vertical-align: middle;\" name=\"minfosadd[grouptype".$gtid."]\">".makeoption($ugidsarr)."</select></td>\n".
					"<td width=\"15%\" class=\"item1\">".lang('end date')."</td>\n".
					"<td width=\"35%\" class=\"item2\"><input type=\"text\" size=\"20\" id=\"minfosadd[grouptype".$gtid."date]\" name=\"minfosadd[grouptype".$gtid."date]\" value=\"\" onclick=\"ShowCalendar(this.id);\"></td>\n".
					"</tr>";
			}
		}
		tabfooter('bmemberadd');
		check_submit_func($submitstr);
	}else{
		$minfosadd['mname'] = trim(strip_tags($minfosadd['mname']));
		$minfosadd['password'] = trim($minfosadd['password']);
		$minfosadd['email'] = trim(strip_tags($minfosadd['email']));
		if(strlen($minfosadd['mname']) < 3 || strlen($minfosadd['mname']) > 15) amessage(lang('member cname length illegal'),M_REFERER);
		$guestexp = '\xA1\xA1|^Guest|^\xD3\xCE\xBF\xCD|\xB9\x43\xAB\xC8';
		$censorexp = '/^('.str_replace(array('\\*', "\r\n", ' '), array('.*', '|', ''), preg_quote(($censoruser = trim($censoruser)), '/')).')$/i';
		if(preg_match("/^\s*$|^c:\\con\\con$|[%,\*\"\s\t\<\>\&]|$guestexp/is",$minfosadd['mname']) || ($censoruser && @preg_match($censorexp,$minfosadd['mname']))) amessage(lang('member cname illegal'),M_REFERER);
		$query = $db->query("SELECT mid FROM {$tblprefix}members WHERE mname='$minfosadd[mname]'");
		if($db->num_rows($query)) amessage(lang('member cname repeat'),M_REFERER);
		if(!$minfosadd['password'] || strlen($minfosadd['password']) > 15 || $minfosadd['password'] != addslashes($minfosadd['password'])) amessage(lang('member password illegal'),M_REFERER);
		$md5_password = md5($minfosadd['password']);
		if(!$minfosadd['email'] || !isemail($minfosadd['email'])) amessage(lang('member email illegal'),M_REFERER);
		if($enable_uc){
			include_once M_ROOT.'./include/ucenter/config.inc.php';
			include_once M_ROOT.'./uc_client/client.php';
			$uid = uc_user_register($minfosadd['mname'],$minfosadd['password'],$minfosadd['email']);
			if($uid <= 0) {
				if($uid == -1) {
					amessage(lang('member cname illegal'));
				} elseif($uid == -2) {
					amessage(lang('member cname illegal'));
				} elseif($uid == -3) {
					amessage(lang('member cname repeat'));
				} elseif($uid == -4) {
					amessage(lang('member email illegal'));
				} elseif($uid == -5) {
					amessage(lang('member email illegal'));
				} elseif($uid == -6) {
					amessage(lang('member email illegal'));
				} else {
					amessage(lang('error operate'));
				}
			}
		}
		$autocheck = $mchannel['autocheck'];
		$mainarr = $subarr = $customarr = array();
		$mainarr['mname'] = $minfosadd['mname'];
		$mainarr['password'] = $md5_password;
		$mainarr['email'] = $minfosadd['email'];
		$mainarr['mtcid'] = empty($minfosadd['mtcid']) ? 1 : $minfosadd['mtcid'];
		foreach($grouptypes as $gtid => $grouptype) {
			if(empty($grouptype['mode']) && !in_array($mchid,explode(',',$grouptype['mchids']))){
				$usergroups = read_cache('usergroups',$gtid);
				if(!$minfosadd['grouptype'.$gtid] || in_array($mchid,explode(',',@$usergroups[$minfosadd['grouptype'.$gtid]]['mchids']))){
					$mainarr["grouptype$gtid"] = $minfosadd['grouptype'.$gtid];
					$mainarr['grouptype'.$gtid.'date'] = !$minfosadd['grouptype'.$gtid] || !isdate($minfosadd['grouptype'.$gtid.'date']) ? '0' : strtotime($minfosadd['grouptype'.$gtid.'date']);
				}
			}
		}
		foreach($currencys as $crid => $currency){
			if($currency['available'] && $currency['initial']) $mainarr["currency$crid"] = $currency['initial'];
		}
		$mainarr['checked'] = $autocheck == 1 ? 1 : 0;
		$mainarr['regip'] = $onlineip;
		$mainarr['regdate'] = $timestamp;
		
		$c_upload = new cls_upload;	
		$mfields = fields_order($mfields);
		$a_field = new cls_field;
		$substr = $customstr = '';
		foreach($mfields as $k => $field){
			if(!$field['issystem'] && !$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('mfield',$mchid,$k);
				$a_field->deal('minfosadd');
				if(!empty($a_field->error)){
					$c_upload->rollback();
					amessage($a_field->error,M_REFERER);
				}
				${$field['tbl'].'arr'}[$k] = $a_field->newvalue;
			}
		}
		unset($a_field);
		$c_upload->saveuptotal(1);
		$newuser = new cls_userinfo;
		if(!$newuser->useradd($mainarr['mname'],$mainarr['password'],$mainarr['email'],$mchid)) amessage(lang('member add failed'),M_REFERER);
		$mid = $newuser->infos['mid'];
		if($autocheck == 2){
			$confirmid = random(6);
			$confirmstr = "$timestamp\t2\t$confirmid";
			$subarr['confirmstr'] = $confirmstr;
		}
		foreach(array('main','sub','custom') as $var){
			foreach(${$var.'arr'} as $k => $v){
				$newuser->updatefield($k,$v,$var);
			}
		}
		$newuser->updatedb();
		unset($newuser);
		adminlog(lang('add member'));
		amessage(lang('member add finish'),M_REFERER);
	}
}elseif($action == 'memberdetail' && $mid){
	!checkapermission(empty($isadmin) ? 52 : 53) && amessage(lang('no_apermission'));
	if($sid && $sid_self) amessage(lang('msite admin item !'));
	$actuser = new cls_userinfo;
	$actuser->activeuser($mid,2);
	empty($actuser->infos['mid']) && amessage(lang('confirmchoose member'));
	(!empty($actuser->infos['isfounder']) && $curuser->infos['mid'] != $actuser->infos['mid']) && amessage(lang('cannot modify founder data'));
	$mchid = $actuser->infos['mchid'];
	$mfields = read_cache('mfields',$mchid);
	if(!submitcheck('bmemberdetail')){
		$a_field = new cls_field;
		$submitstr = '';
		a_guide('memberdetail');
		tabheader(lang('based option').'&nbsp;:&nbsp;'.$actuser->infos['mname'].'&nbsp; &nbsp; ['.lang('member channel').']'.$mchannels[$mchid]['cname'],'memberdetail',"?entry=members&action=memberdetail&mid=$mid".(empty($isadmin) ? '' : '&isadmin=1'),2,1,1);
		trbasic(lang('modify password'),'minfosnew[password]','','password');
		trbasic(lang('Email').'&nbsp;*','minfosnew[email]',$actuser->infos['email']);
		$submitstr .= makesubmitstr('minfosnew[password]',0,0,0,15);
		$submitstr .= makesubmitstr('minfosnew[email]',1,'email',0,50);
		$mtcidsarr = array();
		foreach($mtconfigs as $mtcid => $mtconfig){
			$mtcidsarr[$mtcid] = $mtconfig['cname'];
		}
		trbasic(lang('space template project'),'minfosnew[mtcid]',makeoption(mtcidsarr($mchid),$actuser->infos['mtcid']),'select');
		foreach($mfields as $k => $field){
			if(!$field['issystem'] && !$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('mfield',$mchid,$k);
				$a_field->oldvalue = isset($actuser->infos[$k]) ? $actuser->infos[$k] : '';
				$a_field->trfield('minfosnew');
				$submitstr .= $a_field->submitstr;
			}
		}
		tabfooter();

		tabheader(lang('usergroup message').'&nbsp;:&nbsp;'.$actuser->infos['mname'],'','',4);
		foreach($grouptypes as $gtid => $grouptype) {
			if($grouptype['mode'] < 2 && !in_array($mchid,explode(',',$grouptype['mchids']))){
				$actuser->infos['grouptype'.$gtid.'date'] = !$actuser->infos['grouptype'.$gtid.'date'] ? '' : date('Y-m-d',$actuser->infos['grouptype'.$gtid.'date']);
				$ugidsarr = array('0' => lang('release usergroup')) + ugidsarr($grouptype['gtid'],$mchid);			
				echo "<tr>\n".
					"<td width=\"15%\" class=\"item1\">$grouptype[cname]</td>\n".
					"<td width=\"35%\" class=\"item2\"><select style=\"vertical-align: middle;\" name=\"minfosnew[grouptype".$gtid."]\">".makeoption($ugidsarr,$actuser->infos['grouptype'.$gtid])."</select></td>\n".
					"<td width=\"15%\" class=\"item1\">".lang('end date')."</td>\n".
					"<td width=\"35%\" class=\"item2\"><input type=\"text\" size=\"20\" id=\"minfosnew[grouptype".$gtid."date]\" name=\"minfosnew[grouptype".$gtid."date]\" value=\"".$actuser->infos['grouptype'.$gtid.'date']."\" onclick=\"ShowCalendar(this.id);\"></td>\n".
					"</tr>";
			}else{
				$usergroups = read_cache('usergroups',$gtid);
				$actuser->infos['grouptype'.$gtid.'date'] = !$actuser->infos['grouptype'.$gtid.'date'] ? lang('noend') : date('Y-m-d',$actuser->infos['grouptype'.$gtid.'date']);
				echo "<tr>\n".
					"<td width=\"15%\" class=\"item1\">$grouptype[cname]</td>\n".
					"<td width=\"35%\" class=\"item2\">".(!$actuser->infos['grouptype'.$gtid] ? lang('notbelong usergroup') : $usergroups[$actuser->infos['grouptype'.$gtid]]['cname'])."</td>\n".
					"<td width=\"15%\" class=\"item1\">".lang('end date')."</td>\n".
					"<td width=\"35%\" class=\"item2\">".$actuser->infos['grouptype'.$gtid.'date']."</td>\n".
					"</tr>";
			}
		}
		unset($actuser,$a_field);
		tabfooter('bmemberdetail');
		check_submit_func($submitstr);
	}else{
		$minfosnew['email'] = empty($minfosnew['email']) ? '' : trim($minfosnew['email']);
		if(empty($minfosnew['email']) || !isemail($minfosnew['email'])){
			amessage(lang('member email illegal'), "?entry=members&action=memberdetail&mid=$mid".(empty($isadmin) ? '' : '&isadmin=1'));
		}
		if(!empty($minfosnew['password']) && (strlen($minfosnew['password']) > 15) || $minfosnew['password'] != addslashes($minfosnew['password'])){
			amessage(lang('member password illegal'), "?entry=members&action=memberdetail&mid=$mid".(empty($isadmin) ? '' : '&isadmin=1'));
		}
		$actuser->updatefield('email',$minfosnew['email'],'main');
		!empty($minfosnew['password']) && $actuser->updatefield('password',md5($minfosnew['password']),'main');
		$actuser->updatefield('mtcid',empty($minfosnew['mtcid']) ? 0 : $minfosnew['mtcid'],'main');
		foreach($grouptypes as $gtid => $grouptype){
			if($grouptype['mode'] < 2 && !in_array($mchid,explode(',',$grouptype['mchids'])) && ($gtid != 2 || checkapermission('adminaedit'))){
				$minfosnew['grouptype'.$gtid.'date'] = (!$minfosnew['grouptype'.$gtid] || !isdate($minfosnew['grouptype'.$gtid.'date'])) ? '0' : strtotime($minfosnew['grouptype'.$gtid.'date']);
				$actuser->handgrouptype($gtid,$minfosnew['grouptype'.$gtid],$minfosnew['grouptype'.$gtid.'date']);
			}
		}

		$c_upload = new cls_upload;	
		$mfields = fields_order($mfields);
		$a_field = new cls_field;
		foreach($mfields as $k => $field){
			if(!$field['issystem'] && !$field['isfunc']){
				$a_field->init();
				$a_field->field = read_cache('mfield',$mchid,$k);
				$a_field->oldvalue = isset($actuser->infos[$k]) ? $actuser->infos[$k] : '';
				$a_field->deal('minfosnew');
				if(!empty($a_field->error)){
					$c_upload->rollback();
					amessage($a_field->error,"?entry=members&action=memberdetail&mid=$mid".(empty($isadmin) ? '' : '&isadmin=1'));
				}
				$actuser->updatefield($k,$a_field->newvalue,$field['tbl']);
			}
		}
		unset($a_field);
		$actuser->updatedb();
		$c_upload->saveuptotal(1);
		adminlog(lang('detail0 edit member'));
		amessage(lang('member modify finish'), "?entry=members&action=memberdetail&mid=$mid".(empty($isadmin) ? '' : '&isadmin=1'));
	}

}elseif($action == 'memberedit'){
	!checkapermission(empty($isadmin) ? 52 : 53) && amessage(lang('no_apermission'));
	if($sid && $sid_self) amessage(lang('msite admin item !'));
	$page = !empty($page) ? max(1, intval($page)) : 1;
	submitcheck('bfilter') && $page = 1;
	$viewdetail = empty($viewdetail) ? '' : $viewdetail;
	$checked = isset($checked) ? $checked : '-1';
	$mname = empty($mname) ? '' : $mname;
	$mchid = empty($mchid) ? 0 : max(0,intval($mchid));
	$inregdate = empty($inregdate) ? 0 : max(0,intval($inregdate));
	$outregdate = empty($outregdate) ? 0 : max(0,intval($outregdate));

	$wheresql = '';
	if($checked != '-1'){
		$wheresql .= ($wheresql ? " AND " : "")."checked='$checked'";
	}
	if(!empty($mchid)){
		$wheresql .= ($wheresql ? " AND " : "")."mchid='$mchid'";
	}
	$mname && $wheresql .= ($wheresql ? " AND " : "")."mname LIKE '%".str_replace(array(' ','*'),'%',addcslashes($mname,'%_'))."%'";
	if(!empty($inregdate)){
		$wheresql .= ($wheresql ? " AND " : "")."regdate>'".($timestamp - 86400 * $inregdate)."'";
	}
	if(!empty($outregdate)){
		$wheresql .= ($wheresql ? " AND " : "")."regdate<'".($timestamp - 86400 * $outregdate)."'";
	}
	$filterstr = '';
	foreach(array('viewdetail','checked','mchid','mname','inregdate','outregdate') as $k){
		$filterstr .= "&$k=".urlencode($$k);
	}
	foreach($grouptypes as $gtid => $grouptype){
		${"ugid$gtid"} = isset(${"ugid$gtid"}) ? ${"ugid$gtid"} : 0;
		$filterstr .= "&ugid$gtid=".${"ugid$gtid"};
		if(!empty(${"ugid$gtid"})){
			$wheresql .= ($wheresql ? " AND " : "")."grouptype$gtid='".${"ugid$gtid"}."'";
		}
	}
	!empty($fbd_mchids) && $wheresql .= " AND mchid NOT IN (".mimplode($fbd_mchids).")";
	$wheresql .= ($wheresql ? " AND " : "")."grouptype2".(empty($isadmin) ? "=" : "!=")."0";
	$wheresql = $wheresql ? "WHERE ".$wheresql : "";
	if(!submitcheck('bmemberedit')){
		$checkedarr = array('-1' => lang('nolimit'),'0' => lang('nocheck member'),'1' => lang('checked member'));
		tabheader(lang('filter0 '.(empty($isadmin) ? 'normal0' : 'admin').' member').viewcheck('viewdetail',$viewdetail,'tbodyfilter').'&nbsp; &nbsp; '.strbutton('bfilter','filter0'),'memberedit',"?entry=members&action=memberedit&page=$page".(empty($isadmin) ? '' : '&isadmin=1'));
		echo "<tbody id=\"tbodyfilter\" style=\"display: ".(empty($viewdetail) ? 'none' : '')."\">";
		trbasic(lang('member channel'),'',makeradio('mchid',array(0 => lang('nolimit')) + mchidsarr(),$mchid),'');
		trbasic(lang('check state'),'',makeradio('checked',$checkedarr,$checked),'');
		trbasic(lang('search member'),'mname',$mname,'text',lang('agsearchkey'));
		foreach($grouptypes as $gtid => $grouptype){
			$ugidsarr = array('0' => lang('nolimit'));
			$ugidsarr = $ugidsarr + ugidsarr($gtid);	
			trbasic("$grouptype[cname]","ugid$gtid",makeoption($ugidsarr,${"ugid$gtid"}),'select');
		}
		trrange(lang('register date'),array('outregdate',empty($outregdate) ? '' : $outregdate,'','&nbsp; '.lang('day before').'&nbsp; -&nbsp; ',5),array('inregdate',empty($inregdate) ? '' : $inregdate,'','&nbsp; '.lang('day in'),5));
		echo "</tbody>";
		tabfooter();

		$pagetmp = $page;
		do{
			$query = $db->query("SELECT * FROM {$tblprefix}members $wheresql ORDER BY mid DESC LIMIT ".(($pagetmp - 1) * $atpp).",$atpp");
			$pagetmp--;
		} while(!$db->num_rows($query) && $pagetmp);
		$itemuser = '';
		$fusergroups = read_cache('usergroups',1);
		$ausergroups = read_cache('usergroups',2);
		while($user = $db->fetch_array($query)){
			$user['lastvisit'] = date("$dateformat", $user['lastvisit']);
			$user['regdate'] = date("$dateformat", $user['regdate']);
			$user['checkstr'] = $user['checked'] ? 'Y' : '-';
			$user['channel'] = $mchannels[$user['mchid']]['cname'];
			$user['ugforbidden'] = $user['grouptype1'] ? $fusergroups[$user['grouptype1']]['cname'] : '-';
			$user['ugadmin'] = $user['grouptype2'] ? $ausergroups[$user['grouptype2']]['cname'] : '-';
			$itemuser .= "<tr><td align=\"center\" class=\"item1\" width=\"30\"><input class=\"checkbox\" type=\"checkbox\" name=\"selectid['$user[mid]']\" value=\"$user[mid]\">\n".
				"<td class=\"item2\">$user[mname]</td>\n".
				"<td align=\"center\" class=\"item1\">$user[channel]</td>\n".
				"<td align=\"center\" class=\"item2\">$user[ugadmin]</td>\n".
				"<td align=\"center\" class=\"item1\">$user[ugforbidden]</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"30\">$user[checkstr]</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"70\">$user[regdate]</td>\n".
				"<td align=\"center\" class=\"item2\" width=\"70\">$user[lastvisit]</td>\n".
				"<td align=\"center\" class=\"item1\" width=\"30\"><a href=\"?entry=members&action=memberdetail&mid=$user[mid]".(empty($isadmin) ? '' : '&isadmin=1')."\">".lang('detail')."</a></td></tr>\n";
		}
		$usercount = $db->result_one("SELECT count(*) FROM {$tblprefix}members $wheresql");
		$multi = multi($usercount, $atpp, $page, "?entry=members&action=memberedit$filterstr".(empty($isadmin) ? '' : '&isadmin=1'));

		tabheader(lang((empty($isadmin) ? 'normal0' : 'admin').' member list')."&nbsp;&nbsp;&nbsp;&nbsp;<input class=\"checkbox\" type=\"checkbox\" name=\"select_all\" value=\"1\">&nbsp;".lang('selectallpage'),'','',8);
		trcategory(array("<input class=\"checkbox\" type=\"checkbox\" name=\"chkall\" class=\"category\" onclick=\"checkall(this.form, 'selectid', 'chkall')\">",
						lang('member cname'),lang('member channel'),$grouptypes[2]['cname'],$grouptypes[1]['cname'],lang('check'),lang('reg date'),lang('recentvisit'),lang('edit')));
		echo $itemuser;
		tabfooter();
		echo $multi;
		
		$checkedarr = array('0' => lang('release check'),'1' => lang('check member'));
		tabheader(lang('operate item'));
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"userdeal[delete]\" value=\"1\">&nbsp;".lang('delete member'),'','','');
		trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"userdeal[checked]\" value=\"1\">&nbsp;".lang('check member'),'userchecked',makeoption($checkedarr,'1'),'select');
		foreach($grouptypes as $gtid => $grouptype) {
			if(($grouptype['mode'] < 2) && (!empty($isadmin) || $gtid != 2)) {
				$ugidsarr = array('0' => lang('release usergroup')) + ugidsarr($gtid);			
				trbasic("<input class=\"checkbox\" type=\"checkbox\" name=\"userdeal[grouptype$gtid]\" value=\"1\">&nbsp;$grouptype[cname]",'userugid'.$gtid,makeoption($ugidsarr),'select');
			}
		}
		tabfooter('bmemberedit');
	}else{
		if(empty($userdeal) && empty($dealstr)){
			amessage(lang('confirmselect operate item'),"?entry=members&action=memberedit&page=$page$filterstr".(empty($isadmin) ? '' : '&isadmin=1'));
		}
		if(empty($selectid) && empty($select_all)){
			amessage(lang('confirmselect member'),"?entry=members&action=memberedit&page=$page$filterstr".(empty($isadmin) ? '' : '&isadmin=1'));
		}
		$mnamearr = array();
		if(!empty($select_all)){
			if(empty($dealstr)){//第一页通过表单传送
				$dealstr = implode(',',array_keys(array_filter($userdeal)));
			}else{//通过url传送的参数
				$userdeal = array();
				foreach(array_filter(explode(',',$dealstr)) as $k){
					$userdeal[$k] = 1;
				}
			}

			$parastr = "";
			foreach(array('userchecked') as $k){
				$parastr .= "&$k=".$$k;
			}
			foreach($grouptypes as $gtid => $grouptype){
				$parastr .= "&ugid$gtid=".${'ugid'.$gtid};
			}
			
			$selectid = array();
			$npage = empty($npage) ? 1 : $npage;
			if(empty($pages)){
				$usercount = $db->result_one("SELECT count(*) FROM {$tblprefix}members $wheresql");
				$pages = @ceil($usercount / $atpp);
			}
			if($npage <= $pages){
				$fromstr = empty($fromid) ? "" : "mid<$fromid";
				$nwheresql = !$wheresql ? ($fromstr ? "WHERE $fromstr" : "") : ($wheresql.($fromstr ? " AND " : "").$fromstr);
				$query = $db->query("SELECT mid,mname FROM {$tblprefix}members $nwheresql ORDER BY mid DESC LIMIT 0,$atpp");
				while($item = $db->fetch_array($query)) $selectid[] = $item['mid'];
			}
		}

		$midarr = $mnamearr = array();
		$query = $db->query("SELECT mid,mname FROM {$tblprefix}members WHERE mid IN (".mimplode($selectid).") AND isfounder != '1'");
		while($item = $db->fetch_array($query)){
			$midarr[] = $item['mid'];
			$mnamearr[] = $item['mname'];
		}
		$midstr = "mid IN (".mimplode($midarr).")";
		if(!empty($userdeal['delete']) && $midarr){
			if($enable_uc){
				require_once M_ROOT.'./include/ucenter/config.inc.php';
				require_once M_ROOT.'./uc_client/client.php';
				$uids = array();
				foreach($mnamearr as $k){
					$ucresult = uc_get_user($k);
					is_array($ucresult) && $uids[] = $ucresult[0];
				}
				$uids && uc_user_delete($uids);
			}
			$db->query("DELETE FROM {$tblprefix}members WHERE $midstr",'UNBUFFERED');
			$db->query("DELETE FROM {$tblprefix}members_sub WHERE $midstr",'UNBUFFERED');
			foreach($mchannels as $k => $v) $db->query("DELETE FROM {$tblprefix}members_$k WHERE $midstr",'UNBUFFERED');
			amessage(lang('member delete finish'),"?entry=members&action=memberedit&page=$page$filterstr".(empty($isadmin) ? '' : '&isadmin=1'));
		}
		if(!empty($userdeal['checked']) && $midarr){
			$db->query("UPDATE {$tblprefix}members SET checked='$userchecked' WHERE $midstr");
		}
		$actuser = new cls_userinfo;
		foreach($selectid as $id){
			$actuser->activeuser($id);
			foreach($grouptypes as $gtid => $grouptype){
				if(($grouptype['mode'] < 2) && !empty($userdeal['grouptype'.$gtid]) && !(empty($isadmin) && $gtid == 2)){
					$actuser->handgrouptype($gtid,${'userugid'.$gtid},-1);
				}
			}
			$actuser->updatedb();
			$actuser->init();
		}
		unset($actuser);
		if(!empty($select_all)){
			$npage ++;
			if($npage <= $pages){
				$fromid = min($selectid);
				$transtr = '';
				$transtr .= "&select_all=1";
				$transtr .= "&pages=$pages";
				$transtr .= "&npage=$npage";
				$transtr .= "&bmemberedit=1";
				$transtr .= "&fromid=$fromid";
				amessage(lang('operating')."<br>
						".lang('all')." $pages ".lang('page0').",".lang('dealing')." $npage ".lang('page0')."<br><br>
						<a href=\"?entry=members&action=memberedit&page=$page$filterstr\">>>".lang('pause')."</a>",
						"?entry=members&action=memberedit&page=$page$filterstr$transtr$parastr&dealstr=$dealstr".(empty($isadmin) ? '' : '&isadmin=1'),
						500);
			}
		}
		adminlog(lang('member admin'),lang('member list admin operate'));
		amessage(lang('member operate finish'),"?entry=members&action=memberedit&page=$page$filterstr".(empty($isadmin) ? '' : '&isadmin=1'));
	
	}

}
?>