게시물 전체 삭제하는 법좀 여쭤볼게요~
본문
얼마전부터 아래와 같이 이상한 게시글들이 막 쌓이면서 안에 링크도 걸어놓고
그래서 트래픽이 초과되는 문제가 생기고 있었습니다.
일단 게시글은 아무도 못쓰게 글쓰기 권한 10레벨로 모두 맞춰놨는데요.
혹시 해당 게시글 전체 삭제하는 방법이 있을까요?
DB에 들어가서 삭제하면 된다는걸로 알고는 있는데 제가 프로그래머가
아니라 정확하게 할줄은 모르는데요.
게시판만 삭제한다고 되는일은 아닌걸로 알아서 여쭤봅니다.
또한, 이런 문제를 원천적으로 봉쇄하는 방법이 뭐가 있을까요?
이일때문에 자유게시판, 견적문의 게시판 모두 일단 닫아놓은 상태라서
근본적인 해결책이 있나싶습니다 ㅠ
답변 5
안녕하세요...
@용디자이너 님
먼저 게시글을 모두 비우는 방법입니다.
extend 폴더에 가셔서 아무 파일명 하나 만들어주세요
예) delete.php 이렇게 만들어도 됩니다.
그리고 아래 코드를 넣어주세요
넣으신 다음에 아래에 보면 test 라고 적혀있는거 보이시나요 ?
거기에 지우실 게시판 아이디를 적어주시고,
관리자 페이지에 들어가면 다 지워집니다.
그리고 해당 파일은 지워주세요 관리자 페이지에 들어갈때마다 지워지기 때문에 주석하거나 지워주세요
만약 여러개라면 free 하고 지우고 test 하고 지우고 abcd 하고 지우심 되세요
<?php if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가
function empty_board_event_hook() {
add_event('admin_common', 'empty_board_table');
}
// 훅 등록 실행
empty_board_event_hook();
// 특정 게시판의 테이블을 비우는 코드
function empty_board_table() {
global $g5;
// g5_write_test 테이블 비우기
$sql = "TRUNCATE TABLE {$g5['write_prefix']}test";
sql_query($sql);
}
또한 원천 봉쇄는 불가능하지만, 그누보드 실 개발자분이 업로드 해두신 플러그인 링크로 남겨두겠습니다.
!-->
1) 스팸글 차단 플러그인 => https://sir.kr/g5_plugin/10184
2) 게시글 전체 삭제 임시 파일 생성, 업로드 후 브라우저에서 실행하는 방법
* /delete_posts.php
<?php
include_once('./_common.php');
$bo_table = 'free'; // 이 부분을 삭제할 게시판 ID로 변경하세요
$write_table = $g5['write_prefix'] . $bo_table;
// 파일 삭제 처리
$sql = "SELECT bf_file FROM {$g5['board_file_table']} WHERE bo_table = '{$bo_table}'";
$result = sql_query($sql);
$deleted_files = 0;
$file_path = G5_DATA_PATH . '/file/' . $bo_table;
for ($i = 0; $row = sql_fetch_array($result); $i++) {
@unlink($file_path . '/' . $row['bf_file']);
$deleted_files++;
}
// DB 테이블 초기화
sql_query("TRUNCATE TABLE {$write_table}");
sql_query("DELETE FROM {$g5['board_file_table']} WHERE bo_table = '{$bo_table}'");
sql_query("DELETE FROM {$g5['board_new_table']} WHERE bo_table = '{$bo_table}'");
// 게시판 통계 초기화
sql_query("UPDATE {$g5['board_table']} SET bo_count_write = 0, bo_count_comment = 0 WHERE bo_table = '{$bo_table}'");
echo '<h2>게시판 게시글 삭제 완료</h2>';
echo '<p>게시판 ID: ' . $bo_table . '</p>';
echo '<p>삭제된 파일 수: ' . $deleted_files . '개</p>';
echo '<p>작업이 완료되었습니다. 이 파일은 삭제하세요.</p>';
?>
남겨두어야할 게시물이 없다면
그냥 게시판 자체를 삭제하고 다시 생성하면 간단합니다