function deletemember($uids, $delpost = true) { if (!$uids) { return; } require_once libfile('function/sec'); updateMemberOperate($uids, 2); if ($delpost) { deleteattach($uids, 'uid'); deletepost($uids, 'authorid'); } require_once libfile('function/forum'); foreach ($uids as $uid) { my_thread_log('deluser', array('uid' => $uid)); } $uids = dimplode($uids); $numdeleted = DB::result_first("SELECT COUNT(*) FROM " . DB::table('common_member') . " WHERE uid IN ({$uids})"); foreach (array('common_member_field_forum', 'common_member_field_home', 'common_member_count', 'common_member_log', 'common_member_profile', 'common_member_verify', 'common_member_verify_info', 'common_member_status', 'common_member_validate', 'common_member_magic', 'forum_access', 'forum_moderator', 'common_member_action_log') as $table) { DB::delete($table, "uid IN ({$uids})"); } $doids = array(); $query = DB::query("SELECT * FROM " . DB::table('home_doing') . " WHERE uid IN ({$uids})"); while ($value = DB::fetch($query)) { $doids[$value['doid']] = $value['doid']; } $delsql = !empty($doids) ? "doid IN (" . dimplode($doids) . ") OR " : ""; DB::delete('home_docomment', "{$delsql} uid IN ({$uids})"); DB::delete('common_domain', "id IN ({$uids}) AND idtype='home'"); DB::delete('home_feed', "uid IN ({$uids}) OR (id IN ({$uids}) AND idtype='uid')"); DB::delete('home_notification', "uid IN ({$uids}) OR authorid IN ({$uids})"); DB::delete('home_poke', "uid IN ({$uids}) OR fromuid IN ({$uids})"); DB::delete('home_comment', "(uid IN ({$uids}) OR authorid IN ({$uids}) OR (id IN ({$uids}) AND idtype='uid'))"); DB::delete('home_visitor', "uid IN ({$uids}) OR vuid IN ({$uids})"); DB::delete('home_friend', "uid IN ({$uids}) OR fuid IN ({$uids})"); DB::delete('home_friend_request', "uid IN ({$uids}) OR fuid IN ({$uids})"); DB::delete('common_invite', "uid IN ({$uids}) OR fuid IN ({$uids})"); DB::delete('common_myinvite', "touid IN ({$uids}) OR fromuid IN ({$uids})"); DB::delete('common_moderate', "id IN (" . $uids . ") AND idtype='uid_cid'"); $query = DB::query("SELECT filepath, thumb, remote FROM " . DB::table('home_pic') . " WHERE uid IN ({$uids})"); while ($value = DB::fetch($query)) { $pics[] = $value; } deletepicfiles($pics); include_once libfile('function/home'); $query = DB::query("SELECT * FROM " . DB::table('home_album') . " WHERE uid IN ({$uids})"); while ($value = DB::fetch($query)) { pic_delete($value['pic'], 'album', 0, $value['picflag'] == 2 ? 1 : 0); } DB::query("DELETE FROM " . DB::table('common_mailcron') . ", " . DB::table('common_mailqueue') . " USING " . DB::table('common_mailcron') . ", " . DB::table('common_mailqueue') . " WHERE " . DB::table('common_mailcron') . ".touid IN ({$uids}) AND " . DB::table('common_mailcron') . ".cid=" . DB::table('common_mailqueue') . ".cid", 'UNBUFFERED'); foreach (array('home_doing', 'home_share', 'home_album', 'common_credit_rule_log', 'common_credit_rule_log_field', 'home_pic', 'home_blog', 'home_blogfield', 'home_class', 'home_clickuser', 'home_userapp', 'home_userappfield', 'home_show', 'common_member') as $table) { DB::delete($table, "uid IN ({$uids})"); } manyoulog('user', $uids, 'delete'); return $numdeleted; }
function updateMemberRecover($username) { if (notOpenService()) { return false; } $username = daddslashes($username); $uid = DB::result_first("SELECT uid FROM " . DB::table('common_member') . " WHERE username = '******'"); updateMemberOperate(array($uid), 1); }