📄 superdel.php
字号:
$query=$db->query("SELECT aid FROM pw_posts WHERE pid IN ($delids)");
while(@extract($db->fetch_array($query))){
if($aid){
$attachs= unserialize(stripslashes($aid));
foreach($attachs as $key=>$value){
is_numeric($key) && $delaids.=$key.',';
P_unlink("$attachdir/$value[attachurl]");
}
}
}
if($delaids){
$delaids=substr($delaids,0,-1);
$db->update("DELETE FROM pw_attachs WHERE aid IN($delaids)");
}
$db->update("DELETE FROM pw_posts WHERE pid IN ($delids)");
$tidarray=array_count_values($tidarray);
foreach($tidarray as $key=>$value){
$db->update("UPDATE pw_threads SET replies=replies-'$value' WHERE tid='$key'");
}
/**
* 数据更新
*/
foreach($fidarray as $fid){
updateforum($fid);
}
P_unlink(D_P.'data/bbscache/c_cache.php');
adminmsg('operate_success');
}
}
} elseif($a_type=='member'){
$basename="$admin_file?adminjob=superdel&a_type=member";
require_once(R_P.'require/writelog.php');
require_once GetLang('all');
if(empty($action)){
$groupselect="<option value='-1'>$lang[reg_member]</option>";
$query=$db->query("SELECT gid,gptype,grouptitle FROM pw_usergroups WHERE gptype<>'member' AND gptype<>'default' ORDER BY gid");
while($group=$db->fetch_array($query)){
$groupselect.="<option value=$group[gid]>$group[grouptitle]</option>";
}
include PrintEot('superdel');exit;
} elseif($action=='del'){
if(empty($_POST['step'])){
if(!$schname && !$schemail && !$groupid && $regdate=='all' && $schlastvisit='all'){
adminmsg('noenough_condition');
} else{
if($groupid != '-1'){
if($groupid=='3' && !If_manager){
adminmsg('manager_right');
} elseif(($groupid=='4' || $groupid=='5') && $admin_gid != 3){
adminmsg('admin_right');
}
$sql="m.groupid='$groupid'";
} else{
$sql="m.groupid='-1'";
}
if($schname!=''){
$schname=addslashes(str_replace('*','%',$schname));
$sql.=" AND (m.username LIKE '%$schname%')";
}
if($schemail!=''){
$schemail=str_replace('*','%',$schemail);
$sql.=" AND (m.email LIKE '%$schemail%')";
}
if($postnum){
$sql.=" AND md.postnum<'$postnum'";
}
if($onlinetime){
$sql.=" AND md.onlinetime<'$onlinetime'";
}
if($userip){
$userip=str_replace('*','%',$userip);
$sql.=" AND (md.onlineip LIKE '$userip') ";
}
if($regdate!='all'){
$schtime=$timestamp-$regdate;
$sql.=" AND m.regdate<'$schtime'";
}
if($schlastvisit!='all'){
$schtime=$timestamp-$schlastvisit;
$sql.=" AND md.thisvisit<'$schtime'";
}
if($orderway){
!in_array($orderway,array('regdate','lastvisit','postnum')) && $orderway='uid';
$order=" ORDER BY ".($orderway=='regdate' ? "m.uid " : "md.$orderway ");
$asc && $order.=$asc;
}
$rs=$db->get_one("SELECT COUNT(*) AS count FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE $sql");
$count=$rs['count'];
if(!is_numeric($lines))$lines=100;
(!is_numeric($page) || $page < 1) && $page=1;
$numofpage=ceil($count/$lines);
if($numofpage&&$page>$numofpage){
$page=$numofpage;
}
$pages=numofpage($count,$page,$numofpage,"$admin_file?adminjob=superdel&a_type=member&action=$action&groupid=$groupid&schname=".rawurlencode($schname)."&schemail=$schemail&postnum=$postnum&onlinetime=$onlinetime®date=$regdate&schlastvisit=$schlastvisit&orderway=$orderway&asc=$asc&lines=$lines&");
$start=($page-1)*$lines;
$limit="LIMIT $start,$lines";
$query=$db->query("SELECT m.uid,m.username,m.email,m.groupid,m.regdate,md.thisvisit,md.postnum,md.onlineip FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE $sql $order $limit");
while($sch=$db->fetch_array($query)){
if($_POST['direct']){
$delid[]=$sch['uid'];
} else{
strpos($sch['onlineip'],'|') && $sch['onlineip']=substr($sch['onlineip'],0,strpos($sch['onlineip'],'|'));
if($sch['groupid']=='-1'){
$sch['group']=$lang['reg_member'];
} else{
$sch['group']=$ltitle[$sch['groupid']];
}
$sch['regdate']= get_date($sch['regdate']);
$sch['thisvisit']= get_date($sch['thisvisit']);
$schdb[]=$sch;
}
}
if(!$_POST['direct']){
include PrintEot('superdel');exit;
}
}
}
if($_POST['step']==2 || $_POST['direct']){
!$delid && adminmsg('operate_error');
$delids='';
foreach($delid as $value){
$member=$db->get_one("SELECT m.username,m.groupid,m.regdate,md.postnum FROM pw_members m LEFT JOIN pw_memberdata md ON md.uid=m.uid WHERE m.uid='$value'");
Add_S($member);
if($member['username']==$manager)adminmsg('manager_right');
if($member['groupid']==3 && !If_manager)adminmsg('manager_right');
if($member['groupid']==6){
$db->update("DELETE FROM pw_banuser WHERE uid='$value'");
}
is_numeric($value) && $delids.=$value.',';
$log = array(
'type' => 'deluser',
'username1' => $member['username'],
'username2' => $admin_name,
'field1' => $fid,
'field2' => $member['groupid'],
'field3' => '',
'descrip' => 'deluser_descrip',
'timestamp' => $timestamp,
'ip' => $onlineip,
);
writelog($log);
}
$delids=substr($delids,0,-1);
$db->update("DELETE FROM pw_members WHERE uid IN ($delids)");
$db->update("DELETE FROM pw_memberdata WHERE uid IN ($delids)");
$db->update("DELETE FROM pw_memberinfo WHERE uid IN ($delids)");
@extract($db->get_one("SELECT count(*) AS count FROM pw_members"));
@extract($db->get_one("SELECT username FROM pw_members ORDER BY uid DESC LIMIT 1"));
$db->update("UPDATE pw_bbsinfo SET newmember='$username', totalmember='$count' WHERE id='1'");
adminmsg('operate_success');
}
}
} elseif($a_type=='message'){
$basename="$admin_file?adminjob=superdel&a_type=message";
if(empty($action)){
$basename="$admin_file?adminjob=superdel&a_type=message";
include PrintEot('superdel');exit;
} elseif($action=='del'){
if(empty($_POST['step'])){
if(!$type && !$keepnew && !$username && !$msgdate){
adminmsg('noenough_condition');
} else{
if($type!='all'){
$sql="m.type='$type'";
} else{
$sql='1 ';
}
if($keepnew){
$sql.=" AND m.ifnew='0'";
}
if($msgdate){
$sql.=" ";
}
if($fromuser){
if($fromuser=='SYSTEM'){
$sql .= " AND m.username='SYSTEM'";
}else{
$fromuser = str_replace('*','_',$fromuser);
$rt = $db->get_one("SELECT uid,username,groupid FROM pw_members WHERE username LIKE '$fromuser'");
if(!$rt){
$errorname = $fromuser;
adminmsg('user_not_exists');
}elseif($rt['username'] == $manager && !If_manager){
adminmsg('msg_managerright');
}elseif($rt['groupid'] == 3 && $admin_gid != 3){
adminmsg('msg_adminright');
}
if($type == 'rebox' || $type=='sebox'){
$sql .= " AND m.type='$type' AND m.fromuid='$rt[uid]'";
} else{
$sql .= " AND m.fromuid='$rt[uid]'";
}
}
}
if($touser){
$touser = str_replace('*','_',$touser);
$rt = $db->get_one("SELECT uid,username,groupid FROM pw_members WHERE username LIKE '$touser'");
if(!$rt){
$errorname = $touser;
adminmsg('user_not_exists');
}elseif($rt['username'] == $manager && !If_manager){
adminmsg('msg_managerright');
}elseif($rt['groupid'] == 3 && $admin_gid != 3){
adminmsg('msg_adminright');
}
if($type == 'rebox' || $type=='sebox'){
$sql .= " AND m.type='$type' AND m.touid='$rt[uid]'";
} else{
$sql .= " AND m.touid='$rt[uid]'";
}
}
if($msgdate){
$schtime=$timestamp-$msgdate*24*3600;
$sql.=" AND m.mdate<'$schtime'";
}
$rs=$db->get_one("SELECT COUNT(*) AS count FROM pw_msg m WHERE $sql");
$count=$rs['count'];
if(!is_numeric($lines))$lines=100;
(!is_numeric($page) || $page < 1) && $page=1;
$numofpage=ceil($count/$lines);
if($numofpage&&$page>$numofpage){
$page=$numofpage;
}
$pages=numofpage($count,$page,$numofpage,"$admin_file?adminjob=superdel&a_type=message&action=$action&type=$type&keepnew=$keepnew&msgdate=$msgdate&fromuser=".rawurlencode($fromuser)."&touser=".rawurlencode($touser)."&lines=$lines&");
$start=($page-1)*$lines;
$limit="LIMIT $start,$lines";
$query=$db->query("SELECT m.*,m1.username as fromuser,m2.username as touser FROM pw_msg m LEFT JOIN pw_members m1 ON m1.uid=m.fromuid LEFT JOIN pw_members m2 ON m2.uid=m.touid WHERE $sql ORDER BY mid DESC $limit");
while($message=$db->fetch_array($query)){
if($_POST['direct']){
$delid[]=$message['mid'];
} else{
!$message['fromuser'] && $message['fromuser'] = $message['username'];
$message['date']=get_date($message['mdate']);
$messagedb[]=$message;
}
}
if(!$_POST['direct']){
include PrintEot('superdel');exit;
}
}
}
if($_POST['step']==2 || $_POST['direct']){
!$delid && adminmsg('operate_error');
foreach($delid as $value){
is_numeric($value) && $delids.=$value.',';
}
$delids=substr($delids,0,-1);
$db->update("DELETE FROM pw_msg WHERE mid IN ($delids)");
adminmsg('operate_success');
}
}
}
?>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -