📄 members.inc.php
字号:
$usergroups = array();
$query = $db->query("SELECT groupid, type, grouptitle FROM {$tablepre}usergroups");
while($group = $db->fetch_array($query)) {
switch($group['type']) {
case 'system': $group['grouptitle'] = '<b>'.$group['grouptitle'].'</b>'; break;
case 'special': $group['grouptitle'] = '<i>'.$group['grouptitle'].'</i>'; break;
}
$usergroups[$group['groupid']] = $group;
}
$altbg1 = 'altbg'.((count($extcredits) + 3) % 2 ? '2' : '1');
$altbg2 = $altbg1 == 'altbg1' ? 'altbg2' : 'altbg1';
$creditscolumns = '';
foreach($extcredits as $id => $credit) {
$creditscolumns .= "<td>$credit[title]</td>";
}
$query = $db->query("SELECT uid, username, adminid, groupid, credits, extcredits1, extcredits2,
extcredits3, extcredits4, extcredits5, extcredits6, extcredits7, extcredits8, posts, bday FROM {$tablepre}members WHERE $conditions LIMIT $start_limit, $memberperpage");
while($member = $db->fetch_array($query)) {
$members .= "<tr align=\"center\" class=\"smalltxt\"><td class=\"altbg1\"><input type=\"checkbox\" name=\"uidarray[]\" value=\"$member[uid]\"".($member['adminid'] == 1 ? 'disabled' : '')." class=\"checkbox\"></td>\n".
"<td class=\"altbg2\"><a href=\"viewpro.php?uid=$member[uid]\" target=\"_blank\">$member[username]</a></td>\n".
"<td class=\"altbg1\">$member[credits]</td>\n";
$thisbg = '';
foreach($extcredits as $id => $credit) {
$thisbg = isset($thisbg) && $thisbg == 'altbg2' ? 'altbg1' : 'altbg2';
$members .= "<td class=\"$thisbg\">".$member['extcredits'.$id]."</td>\n";
}
$members .="<td class=\"$altbg1\">$member[posts]</td>\n".
"<td class=\"$altbg2\">{$usergroups[$member[adminid]][grouptitle]}</td>\n".
"<td class=\"$altbg1\">{$usergroups[$member[groupid]][grouptitle]}</td>\n".
"<td class=\"$altbg2\">$member[bday]</td>\n".
"<td class=\"$altbg1\"><a href=\"admincp.php?action=editgroups&uid=$member[uid]\">[$lang[usergroup]]</a> ".
"<a href=\"admincp.php?action=access&uid=$member[uid]\">[$lang[access]]</a> ".
($extcredits ? "<a href=\"admincp.php?action=editcredits&uid=$member[uid]\">[$lang[credits]]</a> " : "<span disabled>[$lang[edit]]</span> ").
"<a href=\"admincp.php?action=editmedals&uid=$member[uid]\">[$lang[medals]]</a> ".
"<a href=\"admincp.php?action=memberprofile&uid=$member[uid]\">[$lang[detail]]</a></td></tr>\n";
}
showtips('members_tips');
?>
<?=$multipage?>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<form method="post" action="admincp.php?action=members">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<tr align="center" class="header">
<td width="48"><input type="checkbox" name="chkall" onclick="checkall(this.form, 'uidarray')" class="checkbox"><?=$lang['del']?></td>
<td><?=$lang['username']?></td><td><?=$lang['credits']?></td><?=$creditscolumns?><td><?=$lang['posts']?></td><td><?=$lang['admingroup']?><td><?=$lang['usergroup']?></td><td><?=$lang['birthday']?></td><td><?=$lang['edit']?></td></tr>
<?=$members?>
</table>
<?=$multipage?>
<br><center><input class="button" type="submit" name="deletesubmit" value="<?=$lang['submit']?>"></center>
</form>
<?
} elseif(submitcheck('deletesubmit', 1)) {
$extra = '';
if(!$uidarray) {
$query = $db->query("SELECT uid, groupid, adminid FROM {$tablepre}members WHERE $conditions");
} else {
$uids = is_array($uidarray) ? '\''.implode('\', \'', $uidarray).'\'' : '0';
$query = $db->query("SELECT uid, groupid, adminid FROM {$tablepre}members WHERE uid IN($uids)");
}
if(!$membernum = $db->num_rows($query)) {
cpmsg('members_no_find_deluser');
}
while($member = $db->fetch_array($query)) {
if($member['adminid'] == 1 || $member['groupid'] == 1) {
cpmsg('members_dont_contain_admin_del');
}
$extra .= '<input type="hidden" name="uidarray[]" value="'.$member['uid'].'">';
}
$extra .= '<br><br><input type="checkbox" name="includepost" value="1" class="checkbox">'.$lang['members_delete_post'];
if(!$confirmed) {
cpmsg('members_delete_confirm', "admincp.php?action=members&deletesubmit=yes&confirmed=yes", 'form', $extra);
} else {
if($includepost) {
$numdeleted = $numdeleted ? $numdeleted : count($uidarray);
$pertask = 100;
$current = intval($current);
$next = $current + $pertask;
$uids = implode(',', $uidarray);
$threads = $fids = $threadsarray = array();
$query = $db->query("SELECT f.fid, t.tid FROM {$tablepre}threads t LEFT JOIN {$tablepre}forums f ON t.fid=f.fid WHERE t.authorid IN ($uids) ORDER BY f.fid LIMIT $pertask");
while($thread = $db->fetch_array($query)) {
$threads[$thread['fid']] .= ($threads[$thread['fid']] ? ',' : '').$thread['tid'];
}
$nextlink = "admincp.php?action=members&confirmed=yes&deletesubmit=yes&includepost=yes¤t=$next&pertask=$pertask&lastprocess=$processed";
if($threads) {
foreach($threads as $fid=>$tids) {
$query = $db->query("SELECT attachment FROM {$tablepre}attachments WHERE tid IN ($tids)");
while($attach = $db->fetch_array($query)) {
@unlink($attachdir.'/'.$attach['attachment']);
}
$db->query("DELETE FROM {$tablepre}threads WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}threadsmod WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}relatedthreads WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}posts WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}polloptions WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}rewardlog WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}polls WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}trades WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}attachments WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}activities WHERE tid IN ($tids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}activityapplies WHERE tid IN ($tids)", 'UNBUFFERED');
require_once DISCUZ_ROOT.'./include/post.func.php';
updateforumcount($fid);
}
if($globalstick && $stickmodify) {
require_once DISCUZ_ROOT.'./include/cache.func.php';
updatecache('globalstick');
}
$extra2 = '';
foreach($uidarray as $uid) {
$extra2 .= '<input type="hidden" name="uidarray[]" value="'.$uid.'">';
}
?>
<br><br><br><br><br><br>
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td><?=$lang['discuz_message']?></td></tr><tr><td class="altbg2" align="center" style="text-align: center;">
<br><br>
<?=$lang['members_delete_post']?>: <?php eval('echo "'.$lang['members_delete_processing'].'";');?>
<form action="<?=$nextlink?>" id="deleteform" method="post">
<?=$extra2?>
<br><br><a href="###" onclick="$('deleteform').submit();"><?=$lang['message_redirect']?></a>
</form>
<script>
setTimeout("$('deleteform').submit();", 3000);
</script>
<br><br>
</td></tr></table>
<br><br><br>
<?
cpfooter();
dexit();
}
}
$uids = is_array($uidarray) ? '\''.implode('\', \'', $uidarray).'\'' : '0';
$query = $db->query("DELETE FROM {$tablepre}members WHERE uid IN ($uids)");
$numdeleted = $db->affected_rows();
$db->query("DELETE FROM {$tablepre}access WHERE uid IN ($uids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}memberfields WHERE uid IN ($uids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}buddys WHERE uid IN ($uids) OR buddyid IN ($uids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}favorites WHERE uid IN ($uids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}moderators WHERE uid IN ($uids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}pms WHERE msgfromid IN ($uids) OR msgtoid IN ($uids)", 'UNBUFFERED');
$db->query("DELETE FROM {$tablepre}subscriptions WHERE uid IN ($uids)", 'UNBUFFERED');
updatecache('settings');
cpmsg('members_delete_succeed');
}
}
} else {
echo '</form>';
}
} elseif($action == 'membersmerge') {
if(!submitcheck('mergesubmit')) {
shownav('menu_members_merge');
?>
<form method="post" action="admincp.php?action=membersmerge">
<input type="hidden" name="formhash" value="<?=FORMHASH?>">
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="tableborder">
<tr class="header"><td colspan="3"><?=$lang['members_merge']?></td></tr>
<tr align="center"><td class="altbg1" width="40%"><?=$lang['members_merge_source']?> 1:</td>
<td class="altbg2" width="60%"><input type="text" name="source[]" size="20"></td></tr>
<tr align="center"><td class="altbg1" width="40%"><?=$lang['members_merge_source']?> 2:</td>
<td class="altbg2" width="60%"><input type="text" name="source[]" size="20"></td></tr>
<tr align="center"><td class="altbg1" width="40%"><?=$lang['members_merge_source']?> 3:</td>
<td class="altbg2" width="60%"><input type="text" name="source[]" size="20"></td></tr>
<tr align="center"><td class="altbg1" width="40%"><?=$lang['members_merge_target']?>:</td>
<td class="altbg2" width="60%"><input type="text" name="target" size="20"></td></tr>
</table><br><center><input class="button" type="submit" name="mergesubmit" value="<?=$lang['submit']?>"></center></form>
<?
} else {
$suids = $susernames = $comma = $tuid = $tusername = $sourcemember = $targetmember = '';
if(is_array($source)) {
$query = $db->query("SELECT uid, username, adminid, groupid FROM {$tablepre}members WHERE username IN ('".implode('\',\'', $source)."') AND username<>''");
while($member = $db->fetch_array($query)) {
if($member['adminid'] == 1 || $member['groupid'] == 1) {
cpmsg('members_dont_contain_admin_merge');
}
$suids .= $comma.$member['uid'];
$susernames .= $comma.'\''.addslashes($member['username']).'\'';
$sourcemember .= $comma.$member['username'];
$comma = ', ';
}
}
$query = $db->query("SELECT uid, username FROM {$tablepre}members WHERE username='$target'");
if(!($member = $db->fetch_array($query)) || !$suids) {
cpmsg('members_merge_invalid');
}
if(in_array($target, $source)) {
cpmsg('members_sameness');
}
$tuid = $member['uid'];
$tusername = addslashes($member['username']);
$targetmember = $member['username'];
if(!$confirmed) {
$extra = '<input type="hidden" name="target" value="'.dhtmlspecialchars($target).'">';
foreach($source as $username) {
$extra .= '<input type="hidden" name="source[]" value="'.dhtmlspecialchars($username).'">';
}
cpmsg('members_merge_confirm', "admincp.php?action=membersmerge&mergesubmit=yes", 'form', $extra);
} else {
$db->query("DELETE FROM {$tablepre}access WHERE uid IN ($suids)");
$db->query("UPDATE {$tablepre}adminnotes SET admin='$tusername' WHERE admin IN ($susernames)");
$db->query("UPDATE {$tablepre}adminsessions SET uid='$tuid' WHERE uid IN ($suids)");
$db->query("UPDATE {$tablepre}announcements SET author='$tusername' WHERE author IN ($susernames)");
$db->query("UPDATE {$tablepre}banned SET admin='$tusername' WHERE admin IN ($susernames)");
$db->query("DELETE FROM {$tablepre}blogcaches WHERE uid IN ($suids)");
$db->query("DELETE FROM {$tablepre}buddys WHERE uid IN ($suids) OR buddyid IN ($suids)");
$db->query("UPDATE {$tablepre}favorites SET uid='$tuid' WHERE uid IN ($suids)");
$db->query("DELETE FROM {$tablepre}memberfields WHERE uid IN ($suids)");
$db->query("DELETE FROM {$tablepre}moderators WHERE uid IN ($suids)");
$db->query("UPDATE {$tablepre}myposts SET uid='$tuid' WHERE uid IN ($suids)", 'SILENT');
$db->query("DELETE FROM {$tablepre}myposts WHERE uid IN ($suids)");
$db->query("UPDATE {$tablepre}mythreads SET uid='$tuid' WHERE uid IN ($suids)");
$db->query("UPDATE {$tablepre}pms SET msgfromid='$tuid', msgfrom='$tusername' WHERE msgfromid IN ($suids)");
$db->query("UPDATE {$tablepre}pms SET msgtoid='$tuid' WHERE msgtoid IN ($suids)");
$db->query("UPDATE {$tablepre}posts SET author='$tusername', authorid='$tuid' WHERE authorid IN ($suids)");
$db->query("UPDATE {$tablepre}ratelog SET uid='$tuid', username='$tusername' WHERE uid IN ($suids)");
$db->query("DELETE FROM {$tablepre}subscriptions WHERE uid IN ($suids)");
$db->query("UPDATE {$tablepre}threads SET author='$tusername', authorid='$tuid' WHERE authorid IN ($suids)");
$db->query("UPDATE {$tablepre}threads SET lastposter='$tusername' WHERE lastposter IN ($susernames)");
$db->query("UPDATE {$tablepre}threadsmod SET uid='$tuid', username='$tusername' WHERE uid IN ($suids)");
$db->query("UPDATE {$tablepre}validating SET uid='$tuid' WHERE uid IN ($suids)");
$db->query("UPDATE {$tablepre}validating SET admin='$tusername' WHERE admin IN ($susernames)");
$db->query("DELETE FROM {$tablepre}onlinetime WHERE uid IN ($suids)");
$query = $db->query("SELECT SUM(credits) AS credits, SUM(extcredits1) AS extcredits1,
SUM(extcredits2) AS extcredits2, SUM(extcredits3) AS extcredits3,
SUM(extcredits4) AS extcredits4, SUM(extcredits5) AS extcredits5,
SUM(extcredits6) AS extcredits6, SUM(extcredits7) AS extcredits7,
SUM(extcredits8) AS extcredits8, SUM(posts) AS posts,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -