[G5] 스팸게시글 한방에 삭제하기 > 기술자료

본문 바로가기
사이트 내 전체검색

기술자료

그누보드 [G5] 스팸게시글 한방에 삭제하기

페이지 정보

댓글 0건 조회 1,039회 수정일 18-05-10 13:55

본문






스팸 한방에 삭제하기....
물론 회원가입후 작성된 게시글만 삭제를 한다는 한계(?)가 있지만
회원가입후 게시글 작성하도록 이용하는 경우에 유용하게 사용되리라 생각됩니다.

요즘 스팸글들은 대부분 회원가입후 로그인 상태에서 스팸 게시글을 수십~수백개를 마구 써댑니다.
스패머들이 상도덕도 없이 심지어 수천개도 하루에 등록을 해대니 당해낼 방법이 없죠
회원가입후 몇달 지나서 스팸 게시하는 경우도 태반이라서, 곤욕스럽기도 합니다.

1. 최고관리자 확인 
2. 회원레벨 3이상이면 작업취소 ( 회원 레벨 1과 2 일때만 작동 )
3. 그룹관리자로 지정된 경우 삭제 
4. 게시판 관리자로 지정된 경우 삭제 
5. 게시글 삭제 
6. 게시글수 업데이트 
7. 회원 접근차단 
8. 포인트 삭제 
9. new 데이타 삭제
10. 게시판으로 이동 

이렇게 기능하도록 했습니다. 
삭제는 전체 게시판을 대상으로 구현했습니다. 


본 도구는 유료로 제공되며, 제품구매는 https://sir.kr/cmall/1516865604 
1. 그누보드5 / lib / common.lib.php 
        $str2 .= "<a href=\"".G5_ADMIN_URL."/point_list.php?sfl=mb_id&amp;stx=".$mb_id."\" target=\"_blank\">포인트내역</a>\n";

아래에 내용 추가

        $str2 .= "<a href=\"".G5_ADMIN_URL."/member_board_delete.php?bo_table=".$_GET['bo_table']."&amp;mb_id=".$mb_id."&amp;page=".$_GET['page']."&amp;sca=".$_GET['sca']."&amp;sop=".$_GET['sop']."&amp;sfl=".$_GET['sfl']."&amp;stx=".$_GET['stx']."\" onclick=\"return confirm('{$name} 회원을 접근차단하고, 작성된 게시글 전체를 삭제하시겠습니까?')\">회원차단+글삭제</a>\n";


2. 그누보드5 / adm / member_board_delete.php 을 업로드
<?php
include_once("./_common.php");

// 1. 최고관리자 확인
if (!$is_admin=="super") {
    alert("관리자 메뉴입니다.");
    exit;
}

// 2. 회원레벨 3이상이면 작업취소
$sql = " select * from {$g5['member_table']} where mb_id='{$mb_id}' ";
$result = sql_query($sql);
$data = sql_fetch_array($result);
if($data['mb_level'] >= '3') {
    alert("Level 1,2 일때만 일괄삭제를 지원합니다.");
    exit;
}

// 3. 그룹관리자로 지정된 경우 삭제
$sql = " select * from {$g5['group_table']} order by gr_id asc ";
$result = sql_query($sql);
while($data = sql_fetch_array($result)) {
    if ($data['gr_admin']) { // 해당 아이디로 그룹관리자가 지정된 경우
        $sql = " update {$g5['group_table']} set gr_admin='' where gr_admin='{$mb_id}' ";
        sql_query($sql);
    }
}

// 4. 게시판 관리자로 지정된 경우 삭제
$sql = " select * from {$g5['board_table']} ";
$result = sql_query($sql);
while($data = sql_fetch_array($result)) { 
    $sql = " update {$g5['board_table']} set bo_admin='' where bo_admin='{$mb_id}' ";
    sql_query($sql);
}

// 5. 게시글 삭제
$sql = " select * from {$g5['board_table']} ";
$result = sql_query($sql);
while($data = sql_fetch_array($result)) { 
    $sql = " delete from ".$g5['write_prefix'].$data['bo_table']." where mb_id='{$mb_id}' ";
    sql_query($sql);
}

// 6. 게시글수 업데이트
$sql = "select * from {$g5['board_table']} order by bo_table asc "; 
$result = sql_query($sql);
while($data = sql_fetch_array($result)) { 
    
    $bo_table = $data["bo_table"];
    //echo $data["bo_table"] ."<br>";

    // 게시판의 글 수
    $sql = " select count(*) as cnt from ".$g5['write_prefix'].$bo_table." where wr_is_comment = 0 ";
    $row = sql_fetch($sql);
    $bo_count_write = $row['cnt'];

    // 게시판의 코멘트 수
    $sql = " select count(*) as cnt from ".$g5['write_prefix'].$bo_table." where wr_is_comment = 1 ";
    $row = sql_fetch($sql);
    $bo_count_comment = $row['cnt'];    

    if (isset($_POST['proc_count'])) {
        // 원글을 얻습니다.
        //$sql = " select wr_id from {$g5['write_prefix']}{$bo_table} where wr_is_comment = 0 ";
        $sql = " select a.wr_id, (count(b.wr_parent) - 1) as cnt from ".$g5['write_prefix'].$bo_table." a, ".$g5['write_prefix'].$bo_table." b where a.wr_id=b.wr_parent and a.wr_is_comment=0 group by a.wr_id ";
        $result = sql_query($sql);
        for ($i=0; $row=sql_fetch_array($result); $i++) {
            /*
            // 코멘트수를 얻습니다.
            $sql2 = " select count(*) as cnt from {$g5['write_prefix']}$bo_table where wr_parent = '{$row['wr_id']}' and wr_is_comment = 1 ";
            $row2 = sql_fetch($sql2);
            */

            sql_query(" update ".$g5['write_prefix'].$bo_table." set wr_comment = '{$row['cnt']}' where wr_id = '{$row['wr_id']}' ");
        }
    }

    // 공지사항에는 등록되어 있지만 실제 존재하지 않는 글 아이디는 삭제합니다.
    $bo_notice = "";
    $lf = "";
    if ($board['bo_notice']) {
        $tmp_array = explode(",", $board['bo_notice']);
        for ($i=0; $i<count($tmp_array); $i++) {
            $tmp_wr_id = trim($tmp_array[$i]);
            $row = sql_fetch(" select count(*) as cnt from ".$g5['write_prefix'].$bo_table." where wr_id = '{$tmp_wr_id}' ");
            if ($row['cnt'])
            {
                $bo_notice .= $lf . $tmp_wr_id;
                $lf = ",";
            }
        }
    }

    $sql = " update {$g5['board_table']}
                set bo_notice = '{$bo_notice}',
                    bo_count_write = '{$bo_count_write}',
                    bo_count_comment = '{$bo_count_comment}'
              where bo_table = '{$bo_table}' ";
    sql_query($sql);
}

// 7. 회원 접근차단
$intime = date("Ymd");
$sql = " update {$g5['member_table']} set mb_level='1', mb_intercept_date='{$intime}' where mb_id='{$mb_id}' ";
sql_query($sql);

// 8. 포인트 삭제
$sql = " delete from {$g5['point_table']} where mb_id='{$mb_id}' "; // 포인트 기록 삭제
sql_query($sql);

$sql = " update {$g5['member_table']} set mb_point='0' where mb_id='{$mb_id}' "; // 포인트 초기화
sql_query($sql);

// 10. new 에 등록된 흔적 지우기
$sql10 = " delete from {$g5['board_new_table']} where mb_id='{$mb_id}' "; // 포인트 기록 삭제
sql_query($sql10);

// 9. 게시판으로 이동
if ($bo_table)
    goto_url(G5_BBS_URL."/board.php?bo_table={$_GET['bo_table']}&amp;page={$page}&amp;sca={$sca}&amp;sop={$sop}&amp;sfl={$sfl}&amp;stx={$stx}");
else
    goto_url(G5_URL);
?>
 

댓글목록

등록된 댓글이 없습니다.


Total 361건 1 페이지
기술자료 목록
번호 제목
361 그누보드
[G5] 글 가장 위로 순서 변경하기 ( update. 2018-05-08 12:40 ) Hit.87
360 그누보드
359 그누보드
358 그누보드
357 그누보드
356 그누보드
[G4] 스팸게시글 한방에 삭제하기 ( update. 2018-03-23 15:54 ) Hit.515
355 그누보드
[G4/G5] 현재 접속자 환경설정과 연동하기 ( update. 2018-03-02 09:32 ) Hit.684
354 그누보드
353 그누보드
[G5] 서버 이전후 글쓰기 안될때 ( update. 2018-02-05 19:35 ) Hit.1013
352 그누보드
[G5] 그누컨텐츠 설치하기 ( update. 2018-03-07 06:06 ) Hit.921
열람중 그누보드
[G5] 스팸게시글 한방에 삭제하기 ( update. 2018-05-10 13:55 ) Hit.1040
350 그누보드
[G5] select 로 추출하는 최신게시글 ( write. 2018-01-19 ) Hit.1139
349 그누보드
348 그누보드
[G5] 동창회 (동문회) 주소록 연동 회원관리 ( update. 2018-01-17 12:50 ) Hit.964
347 그누보드
346 그누보드
[G5] 스마트폰과 PC에서 다른 테마 적용하기 ( update. 2018-01-12 12:27 ) Hit.939
345 그누보드
[G5] 최고관리자 자동로그인 허용 ( write. 2018-01-06 ) Hit.900
344 그누보드
343 그누보드
[G5] 회원가입시 성별 받기 ( update. 2018-01-12 10:37 ) Hit.909
342 그누보드
[G5] kcaptcha 자동등록방지가 뜨지 않습니다 ( update. 2018-04-03 14:46 ) Hit.944
341 그누보드
[G5] 게시글 일정 시간 지난후 자동 삭제 ( update. 2017-12-27 13:00 ) Hit.908
340 그누보드
339 그누보드
338 그누보드
[G5] 로그인시 자동 쪽지 도착 알림 ( write. 2017-12-12 ) Hit.612
337 그누보드
[G5] 저장된 아이피 변경하기 ( update. 2017-12-12 01:25 ) Hit.552
게시물 검색

회원로그인

접속자집계

오늘
767
어제
2,477
최대
3,174
전체
3,992,883

회사명: 해피정닷컴   전화: 070-7600-3500   팩스: 02-865-3528
주소: 08394 서울시 구로구 디지털로 242 한화비즈메트로1차 1502호
사업자번호: 119-05-36414   대표: 정창용   개인정보보호책임자: 정창용
Copyright 2001-2018 해피정닷컴. All Rights Reserved.