헐랭이님의 자폭소스를 mp3만 삭제되게끔...? 정보
헐랭이님의 자폭소스를 mp3만 삭제되게끔...?본문
헐랭이님께서 만드신 자동폭파 소스입니다.
제가 생각하는건 글 전체가 폭파되는게 아니고
mp3파일만 삭제되게끔 하려고 하는데요.
아래 연하게 한 부분은 필요가 없기에 삭제를 하고
빨간부분을 수정해야할듯 한데...어떻게 하면 좋을까요??
방법이 있으시면 말씀좀 해주세요~
그리고 날짜를 정하는것 말고 일주일뒤에 지워지면 더 좋을것 같습니다.
일반 게시판에 쓰는 거라 시간이 지나면 mp3파일이 무용지물이
될까봐 용량을 아끼는 차원에서 문의드립니다.
//해당날자가 되면 구동할 삭제코드
//view.skin.php 상단에 적용함
//수신자 지정을 하였다면 적용안함
//view.skin.php 상단에 적용함
//수신자 지정을 하였다면 적용안함
if (!$view[wr_8] && $view[wr_6]) {
$g4[time_ymd] = date("Ymd", $g4[server_time]);
$stoday = $g4[time_ymd];
if ($stoday > $view[wr_6]) {
$sql = " select wr_id, mb_id, wr_is_comment from $write_table where wr_parent = '$view[wr_id]' order by wr_id ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
// 원글이라면
if (!$row[wr_is_comment])
{
// 원글 포인트 삭제
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '쓰기'))
insert_point($row[mb_id], $board[bo_write_point] * (-1), "$board[bo_subject] $row[wr_id] 글삭제");
$sql = " select wr_id, mb_id, wr_is_comment from $write_table where wr_parent = '$view[wr_id]' order by wr_id ";
$result = sql_query($sql);
while ($row = sql_fetch_array($result))
{
// 원글이라면
if (!$row[wr_is_comment])
{
// 원글 포인트 삭제
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '쓰기'))
insert_point($row[mb_id], $board[bo_write_point] * (-1), "$board[bo_subject] $row[wr_id] 글삭제");
// 업로드된 파일이 있다면 파일삭제
$sql2 = " select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$row[wr_id]' ";
$result2 = sql_query($sql2);
while ($row2 = sql_fetch_array($result2))
@unlink("$g4[path]/data/file/$bo_table/$row2[bf_file]");
// 파일테이블 행 삭제
sql_query(" delete from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$row[wr_id]' ");
$sql2 = " select * from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$row[wr_id]' ";
$result2 = sql_query($sql2);
while ($row2 = sql_fetch_array($result2))
@unlink("$g4[path]/data/file/$bo_table/$row2[bf_file]");
// 파일테이블 행 삭제
sql_query(" delete from $g4[board_file_table] where bo_table = '$bo_table' and wr_id = '$row[wr_id]' ");
$count_write++;
}
else
{
// 코멘트 포인트 삭제
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '코멘트'))
insert_point($row[mb_id], $board[bo_comment_point] * (-1), "$board[bo_subject] {$view[wr_id]}-{$row[wr_id]} 코멘트삭제");
}
else
{
// 코멘트 포인트 삭제
if (!delete_point($row[mb_id], $bo_table, $row[wr_id], '코멘트'))
insert_point($row[mb_id], $board[bo_comment_point] * (-1), "$board[bo_subject] {$view[wr_id]}-{$row[wr_id]} 코멘트삭제");
$count_comment++;
}
}
}
}
// 게시글 삭제
sql_query(" delete from $write_table where wr_parent = '$view[wr_id]' ");
sql_query(" delete from $write_table where wr_parent = '$view[wr_id]' ");
// 최근게시물 삭제
sql_query(" delete from $g4[board_new_table] where bo_table = '$bo_table' and wr_parent = '$view[wr_id]' ");
sql_query(" delete from $g4[board_new_table] where bo_table = '$bo_table' and wr_parent = '$view[wr_id]' ");
// 스크랩 삭제
sql_query(" delete from $g4[scrap_table] where bo_table = '$bo_table' and wr_id = '$view[wr_id]' ");
/*
// 공지사항 삭제
$notice_array = explode("\n", trim($board[bo_notice]));
$bo_notice = "";
for ($k=0; $k<count($notice_array); $k++)
if ((int)$write[wr_id] != (int)$notice_array[$k])
$bo_notice .= $notice_array[$k] . "\n";
$bo_notice = trim($bo_notice);
sql_query(" update $g4[board_table] set bo_notice = '$bo_notice' where bo_table = '$bo_table' ");
*/
// 글숫자 감소
if ($count_write > 0 || $count_comment > 0)
sql_query(" update $g4[board_table] set bo_count_write = bo_count_write - '$count_write', bo_count_comment = bo_count_comment - '$count_comment' where bo_table = '$bo_table' ");
sql_query(" delete from $g4[scrap_table] where bo_table = '$bo_table' and wr_id = '$view[wr_id]' ");
/*
// 공지사항 삭제
$notice_array = explode("\n", trim($board[bo_notice]));
$bo_notice = "";
for ($k=0; $k<count($notice_array); $k++)
if ((int)$write[wr_id] != (int)$notice_array[$k])
$bo_notice .= $notice_array[$k] . "\n";
$bo_notice = trim($bo_notice);
sql_query(" update $g4[board_table] set bo_notice = '$bo_notice' where bo_table = '$bo_table' ");
*/
// 글숫자 감소
if ($count_write > 0 || $count_comment > 0)
sql_query(" update $g4[board_table] set bo_count_write = bo_count_write - '$count_write', bo_count_comment = bo_count_comment - '$count_comment' where bo_table = '$bo_table' ");
$smsg = "글작성자가 지정한 자폭 날자가 되어\\n\\n이글의 자동 삭제를 실시 합니다.";
alert($smsg, "./board.php?bo_table=$bo_table");
}
}
//응용출력
<?
if ($view[wr_6]){
$view[icon_secret_os] = "<a href=\"javascript:alert('자폭 설정이 되어 있습니다.\\n자폭일 : ".$view[wr_6]."')\"><font color=red class=small>(자폭 설정이 작동 중입니다. 지정일: $view[wr_6])</font></a><br>";
} else{
$view[icon_secret_os] = "";
}
echo "$view[icon_secret_os]";
?>
---------------------------------------------------------------------------------------------
if ($view[wr_6]){
$view[icon_secret_os] = "<a href=\"javascript:alert('자폭 설정이 되어 있습니다.\\n자폭일 : ".$view[wr_6]."')\"><font color=red class=small>(자폭 설정이 작동 중입니다. 지정일: $view[wr_6])</font></a><br>";
} else{
$view[icon_secret_os] = "";
}
echo "$view[icon_secret_os]";
?>
---------------------------------------------------------------------------------------------
//실제 적용 코드
//write.skin.php 에서 출력시킬 위치에 적용함
//답글,수정 모드는 출력없음
//write.skin.php 에서 출력시킬 위치에 적용함
//답글,수정 모드는 출력없음
<? if ($w =="") { ?>
<tr>
<td style='padding-left:20px; height:30px;'>· 자폭설정</td>
<td> <input class=ed type=text id=wr_6 name='wr_6' size=8 maxlength=10 numeric itemname='자폭실행일' value='<?=$write[wr_6]?>' title='옆의 달력 아이콘을 클릭하여 자폭일을 입력하세요.'>
<a href="javascript:win_calendar('wr_6', document.getElementById('wr_6').value, '');"><img src='<?=$board_skin_path?>/img/calendar.gif' border=0 align=absmiddle title='자폭일을 선택하세요'></a>
(자동삭제일 지정)수신자가 지정되면 작동불가
</td>
</tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<? } ?>
<tr>
<td style='padding-left:20px; height:30px;'>· 자폭설정</td>
<td> <input class=ed type=text id=wr_6 name='wr_6' size=8 maxlength=10 numeric itemname='자폭실행일' value='<?=$write[wr_6]?>' title='옆의 달력 아이콘을 클릭하여 자폭일을 입력하세요.'>
<a href="javascript:win_calendar('wr_6', document.getElementById('wr_6').value, '');"><img src='<?=$board_skin_path?>/img/calendar.gif' border=0 align=absmiddle title='자폭일을 선택하세요'></a>
(자동삭제일 지정)수신자가 지정되면 작동불가
</td>
</tr>
<tr><td colspan=2 height=1 bgcolor=#e7e7e7></td></tr>
<? } ?>
코드 추가부분
write.skin.php 폼태그에서 추가
자폭이 되도록 설정이 되어있는 상태에서 수정을 할경우 자폭 설정값이 사라지는 문제 해결
write.skin.php 폼태그에서 추가
자폭이 되도록 설정이 되어있는 상태에서 수정을 할경우 자폭 설정값이 사라지는 문제 해결
<? if ($w =="u") { ?>
<input type=hidden name=wr_6 value="<?=$write[wr_6]?>">
<? } ?>
<input type=hidden name=wr_6 value="<?=$write[wr_6]?>">
<? } ?>
댓글 전체

먼저 도움이 되는 글이 아니라서 죄송 합니다.
자동폭파 기능은 모 사이트에서 짬뽕드랍 프로젝트로 찌찌뽕 하면서 나온 겁니다..만
별 쓰잘데기가 없는듯하여 아직까지 정식 공개는 안하고 있던 겁니다만...ㅎㅎㅎ^^
질문하신 내용처럼 특정 확장자만 찾아서 삭제 하는것은 쫌 어려울듯 합니다.ㅠㅠ
위 코드에서 보시다시피 해당글에 첨부된 파일이 1개~부터 여러개가 되기 때문에 while(뺑뺑이를 돌리면서) 파일테이블에 저장된 리스트 순서와 이름을 대조해야 하는 문제가 생깁니다.
그리고 첨부된 파일을 일정기간후 삭제를 한다면 파일 테이블에서도 리스트를 동시에 삭제를 해야 합니다.
자동폭파 기능은 모 사이트에서 짬뽕드랍 프로젝트로 찌찌뽕 하면서 나온 겁니다..만
별 쓰잘데기가 없는듯하여 아직까지 정식 공개는 안하고 있던 겁니다만...ㅎㅎㅎ^^
질문하신 내용처럼 특정 확장자만 찾아서 삭제 하는것은 쫌 어려울듯 합니다.ㅠㅠ
위 코드에서 보시다시피 해당글에 첨부된 파일이 1개~부터 여러개가 되기 때문에 while(뺑뺑이를 돌리면서) 파일테이블에 저장된 리스트 순서와 이름을 대조해야 하는 문제가 생깁니다.
그리고 첨부된 파일을 일정기간후 삭제를 한다면 파일 테이블에서도 리스트를 동시에 삭제를 해야 합니다.
헐랭이님 감사합니다~~^^
많은 도움 됐습니다. 다른 방법을 생각해봐야겠습니다~~^^
좋은 하루 되세요~
많은 도움 됐습니다. 다른 방법을 생각해봐야겠습니다~~^^
좋은 하루 되세요~