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

일정기간에 지나면 첨부된 파일삭제 채택완료

언젠간 5년 전 조회 2,690

</p>

<p><?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

// 특정게시판에 적용하고 싶을 때

$mtable = array('data01', 'data02');

// 기간

$term = '-2 minute';

foreach($mtable as $t) {

    $mbo_table = $t;</p>

<p>/*

// 전체게시판에 적용하고 싶을때  Start

$sql = "select * from {$g5['board_table']} order by bo_table asc ";

$result = sql_query($sql);

while($data = sql_fetch_array($result)) {

    $mbo_table = $data["bo_table"];

// 전체게시판에 적용하고 싶을때  End

*/</p>

<p>    // 글삭제

    sql_query(" delete from {$g5['write_prefix']}{$mbo_table} where wr_datetime < date_add(now(), interval $term) ");</p>

<p>    // 새글삭제

    sql_query(" delete from {$g5['board_new_table']} where bn_datetime < date_add(now(), interval $term) and bo_table = '{$mbo_table}' ");</p>

<p>    // 스크랩 삭제

    sql_query(" delete from {$g5['scrap_table']} where ms_datetime < date_add(now(), interval $term) and bo_table = '{$mbo_table}' ");</p>

<p> </p>

<p>    // 업로드된 파일이 있다면

    $sql2 = " select * from {$g5['board_file_table']} where bf_datetime < date_add(now(), interval $term) and bo_table = '{$mbo_table}' ";

    $result2 = sql_query($sql2);

        while ($row2 = sql_fetch_array($result2)) {

        // 파일삭제

        @unlink(G5_DATA_PATH.'/file/'.$bo_table.'/'.str_replace('../', '',$row2['bf_file']));

    }</p>

<p>    // 파일테이블 행 삭제

    sql_query(" delete from {$g5['board_file_table']} where bf_datetime < date_add(now(), interval $term) and bo_table = '{$mbo_table}' ");</p>

<p>    // 추천 삭제

    sql_query(" delete from {$g5['board_good']} where bg_datetime < date_add(now(), interval $term) and bo_table = '{$mbo_table}' ", false);</p>

<p> </p>

<p>

    // 게시판의 글 수

    $sql = " select count(*) as cnt from {$g5['write_prefix']}{$mbo_table} where wr_is_comment = 0 ";

    $row = sql_fetch($sql);

    $bo_count_write = $row['cnt'];</p>

<p>    // 게시판의 코멘트 수

    $sql = " select count(*) as cnt from {$g5['write_prefix']}{$mbo_table} where wr_is_comment = 1 ";

    $row = sql_fetch($sql);

    $bo_count_comment = $row['cnt'];</p>

<p>

    if (isset($_POST['proc_count'])) {

        // 원글을 얻습니다.

        //$sql = " select wr_id from {$g5['write_prefix']}{$mbo_table} where wr_is_comment = 0 ";

        $sql = " select a.wr_id, (count(b.wr_parent) - 1) as cnt from {$g5['write_prefix']}{$mbo_table} a, {$g5['write_prefix']}{$mbo_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++) {</p>

<p>            //코멘트수를 얻습니다.

            //$sql2 = " select count(*) as cnt from {$g5['write_prefix']}{$mbo_table} where wr_parent = '{$row['wr_id']}' and wr_is_comment = 1 ";

            //$row2 = sql_fetch($sql2);</p>

<p>            sql_query(" update {$g5['write_prefix']}{$mbo_table} set wr_comment = '{$row['cnt']}' where wr_id = '{$row['wr_id']}' ");

        }

    }</p>

<p>    // 공지사항에는 등록되어 있지만 실제 존재하지 않는 글 아이디는 삭제합니다.

    $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']}{$mbo_table} where wr_id = '{$tmp_wr_id}' ");

            if ($row['cnt']) {

                $bo_notice .= $lf . $tmp_wr_id;

                $lf = ',';

            }

        }

    }

    $sql = " update {$g5['board_table']} set ";

    if ($board['bo_notice']) $sql .= " bo_notice = '{$bo_notice}', ";

    $sql .= " bo_count_write = '{$bo_count_write}', ";

    $sql .= " bo_count_comment = '{$bo_count_comment}' ";

    $sql .= " where bo_table = '{$mbo_table}' ";

    sql_query($sql);

}

?></p>

<p>

 

https://sir.kr/g5_tip/6900#c_12827

여기서 참고해서 만들었는데요.

 

 

문제는 첨부된 파일 삭제안되네요.

 

어떻게 하면 첨부된 파일 삭제되게 할 수 있을까요?

 

초짜라 자세히 알려주시면 고맙겠습니다. 

 

읽어주셔서 감사합니다.

 

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

답변 1개

채택된 답변
+20 포인트
5년 전

파일삭제,부분의 $bo_table을 $mbo_table로 바꿔보세요

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

답변에 대한 댓글 1개

언젠간
5년 전
[code]
$sql2 = " select * from {$g5['board_file_table']} where bf_datetime < date_add(now(), interval $term) and bo_table = '{$mbo_table}' ";
$result2 = sql_query($sql2);
while ($row2 = sql_fetch_array($result2)) {
// 파일삭제
@unlink(G5_DATA_PATH.'/file/'.$mbo_table.'/'.str_replace('../', '',$row2['bf_file']));
}
[/code]

이렇게요?



확인해보니 삭제되네요.

감사합니다.

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

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

로그인