테스트 사이트 - 개발 중인 베타 버전입니다

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

동물원 11개월 전 조회 1,138

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

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

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

 

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

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

 

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

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트
세크티
11개월 전

기본기능에는 없습니다. 삭제될때 별도의 테이블에 저장해야할텐데 제작의뢰로 가셔야할듯합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

11개월 전

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

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

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) ";</p>

<p>// 특정 게시판만 보기

if (isset($_GET['del_bo_table']) && $_GET['del_bo_table']) {

  $sql_search .= " and a.bo_table = '".sql_real_escape_string($_GET['del_bo_table'])."' ";

}</p>

<p>$sql = " select a.*, b.bo_subject

          $sql_common

          $sql_search

          order by dl_datetime desc

          limit 0, 15 ";

$result = sql_query($sql);

?></p>

<p><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></p>

<p>  <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>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인