コード例 #1
0
ファイル: function_delete.php プロジェクト: v998/discuzx-en
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;
}
コード例 #2
0
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);
}