관리자페이지에서 최근 삭제게시물 목록 확인하기

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
관리자페이지에서 최근 삭제게시물 목록 확인하기

QA

관리자페이지에서 최근 삭제게시물 목록 확인하기

본문

관리자페이지 초기화면에 보면

최근 등록게시물과 최근가입회원 목록을 볼 수 있는데요.

관리자가 일반 회원들의 게시물 삭제내역을 볼 수 있게 하고 싶습니다.

 

관리자초기화면에서 전체게시판 대상으로 최근 삭제된게시물 목록을 볼 수 있을까요?

혹시 특정게시판의 최근 삭제목록을 볼 수 있다면 더 유용할 것 같습니다.

 

위와 관련한 소스나 팁 등을 도움 부탁 드립니다.

이 질문에 댓글 쓰기 :

답변 2

그누보드에 해당 기능이 없습니다. 

그래서 별도로 구현해야 됩니다.

1. 먼저 삭제 로그 테이블을 생성합니다:


CREATE TABLE g5_board_delete_log (
  dl_id int(11) NOT NULL AUTO_INCREMENT,
  bo_table varchar(20) NOT NULL,
  wr_id int(11) NOT NULL,
  wr_subject varchar(255) NOT NULL,
  mb_id varchar(20) NOT NULL,
  delete_mb_id varchar(20) NOT NULL,
  dl_datetime datetime NOT NULL,
  dl_ip varchar(255) NOT NULL,
  PRIMARY KEY (dl_id),
  KEY idx_bo_table (bo_table),
  KEY idx_datetime (dl_datetime)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

2. /bbs/delete.php 파일을 수정하여 게시물 삭제 시 로그를 기록하도록 합니다.
delete.php 파일에서 게시물 삭제 직전에 아래 코드를 추가합니다:


// 게시물 삭제 로그 저장
$sql = " insert into g5_board_delete_log
          set bo_table = '{$bo_table}',
              wr_id = '{$wr_id}',
              wr_subject = '".addslashes($write['wr_subject'])."',
              mb_id = '{$write['mb_id']}',
              delete_mb_id = '{$member['mb_id']}',
              dl_datetime = '".G5_TIME_YMDHIS."',
              dl_ip = '{$_SERVER['REMOTE_ADDR']}' ";
sql_query($sql);

3. 관리자 초기화면(adm/index.php)에 삭제 로그 출력 코드를 추가합니다:


<?php
// 최근 삭제된 게시물
$sql_common = " from g5_board_delete_log a 
                left join {$g5['board_table']} b on (a.bo_table = b.bo_table) ";
$sql_search = " where (1) ";
// 특정 게시판만 보기
if (isset($_GET['del_bo_table']) && $_GET['del_bo_table']) {
  $sql_search .= " and a.bo_table = '".sql_real_escape_string($_GET['del_bo_table'])."' ";
}
$sql = " select a.*, b.bo_subject
          $sql_common
          $sql_search
          order by dl_datetime desc
          limit 0, 15 ";
$result = sql_query($sql);
?>
<section>
  <h2>최근 삭제된 게시물</h2>
  
  <form>
  <select name="del_bo_table" onchange="this.form.submit();">
    <option value="">전체게시판</option>
    <?php
    $sql2 = " select bo_table, bo_subject from {$g5['board_table']} order by bo_table ";
    $result2 = sql_query($sql2);
    for ($i=0; $row2=sql_fetch_array($result2); $i++) {
      $selected = $_GET['del_bo_table'] == $row2['bo_table'] ? 'selected' : '';
      echo '<option value="'.$row2['bo_table'].'" '.$selected.'>'.$row2['bo_subject'].'</option>';
    }
    ?>
  </select>
  </form>
  <div class="tbl_head01 tbl_wrap">
    <table>
    <thead>
    <tr>
      <th scope="col">게시판</th>
      <th scope="col">제목</th>
      <th scope="col">작성자</th>
      <th scope="col">삭제자</th> 
      <th scope="col">삭제일시</th>
      <th scope="col">IP</th>
    </tr>
    </thead>
    <tbody>
    <?php
    for ($i=0; $row=sql_fetch_array($result); $i++) {
      $bo_subject = cut_str($row['bo_subject'], 20);
      $wr_subject = get_text($row['wr_subject']);
    ?>
    <tr>
      <td><?php echo $bo_subject ?></td>
      <td><?php echo $wr_subject ?></td>
      <td><?php echo $row['mb_id'] ?></td>
      <td><?php echo $row['delete_mb_id'] ?></td>
      <td><?php echo $row['dl_datetime'] ?></td>
      <td><?php echo $row['dl_ip'] ?></td>
    </tr>
    <?php } ?>
    <?php if ($i == 0) echo '<tr><td colspan="6" class="empty_table">자료가 없습니다.</td></tr>'; ?>
    </tbody>
    </table>
  </div>
</section>
답변을 작성하시기 전에 로그인 해주세요.
전체 6
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT