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

📄 superdel.php

📁 很好的一套PHP树形论坛程序
💻 PHP
📖 第 1 页 / 共 2 页
字号:

			$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&regdate=$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 + -