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

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

QA

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

답변 2

본문

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

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

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

 

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

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

 

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

이 질문에 댓글 쓰기 :

답변 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>
답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로