게시판삭제 관련 질문입니다. 채택완료
망이망소이
5년 전
조회 2,356
회원에게 회원ID와 동일한 명칭의 게시판을 생성해줬다가
회원탈퇴시에 생성해줬던 게시판과 파일/폴더들도 다 함께 자동으로 지워지게 하고자하여
아래와 같이 해봤습니다.
/adm/board_delete.inc.php 입니다.
</p>
<p><?php
// board_delete.php , boardgroup_delete.php 에서 include 하는 파일</p>
<p>if (!defined('_GNUBOARD_')) exit;
if (!defined('_BOARD_DELETE_')) exit; // 개별 페이지 접근 불가</p>
<p>// $tmp_bo_table 에는 $bo_table 값을 넘겨주어야 함
if (!$tmp_bo_table) { return; }</p>
<p>// 게시판 1개는 삭제 불가 (게시판 복사를 위해서)
//$row = sql_fetch(" select count(*) as cnt from $g5['board_table'] ");
//if ($row['cnt'] <= 1) { return; }</p>
<p>// 게시판 설정 삭제
sql_query(" delete from {$g5['board_table']} where bo_table = '{$tmp_bo_table}' ");</p>
<p>// 최신글 삭제
sql_query(" delete from {$g5['board_new_table']} where bo_table = '{$tmp_bo_table}' ");</p>
<p>// 스크랩 삭제
sql_query(" delete from {$g5['scrap_table']} where bo_table = '{$tmp_bo_table}' ");</p>
<p>// 파일 삭제
sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$tmp_bo_table}' ");</p>
<p>// 게시판 테이블 DROP
sql_query(" drop table {$g5['write_prefix']}{$tmp_bo_table} ", FALSE);</p>
<p>delete_cache_latest($tmp_bo_table);</p>
<p>// 게시판 폴더 전체 삭제
rm_rf(G5_DATA_PATH.'/file/'.$tmp_bo_table);
?></p>
<p>
게시판 삭제시 삭제하는 게시판관련된 파일들과 폴더까지 지우는 부분인것 같아서
이중 일부를
회원탈퇴처리시 탈퇴하는 회원ID와
같은ID의 게시판을 지우는 것에 사용하려고
다음과 같이 적용해봤습니다.
/bbs/member_leave.php
</p>
<p><?php
include_once('./_common.php');</p>
<p>if (!$member['mb_id'])
alert('회원만 접근하실 수 있습니다.');</p>
<p>if ($is_admin == 'super')
alert('최고 관리자는 탈퇴할 수 없습니다');</p>
<p>if (!($_POST['mb_password'] && check_password($_POST['mb_password'], $member['mb_password'])))
alert('비밀번호가 틀립니다.');</p>
<p>// $tmp_bo_table 에는 $bo_table 값을 넘겨주어야 함</p>
<p> </p>
<p>################### 추가한 부분 ###################</p>
<p>탈퇴하는 회원의 아이디와 일치하는 게시판을 찾아 지워주려고....</p>
<p>################### 추가한 부분 ###################</p>
<p>
if (!$member['mb_id']) { return; }</p>
<p>// 게시판 설정 삭제
sql_query(" delete from {$g5['board_table']} where bo_table = '{$member['mb_id']}' ");</p>
<p>// 최신글 삭제
sql_query(" delete from {$g5['board_new_table']} where bo_table = '{$member['mb_id']}' ");</p>
<p>// 스크랩 삭제
sql_query(" delete from {$g5['scrap_table']} where bo_table = '{$member['mb_id']}' ");</p>
<p>// 파일 삭제
sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$member['mb_id']}' ");</p>
<p>// 게시판 테이블 DROP
sql_query(" drop table {$g5['write_prefix']}{$member['mb_id']} ", FALSE);</p>
<p>delete_cache_latest($member['mb_id']);</p>
<p>// 게시판 폴더 전체 삭제
rm_rf(G5_DATA_PATH.'/file/'.$member['mb_id']);</p>
<p> </p>
<p>################### 추가한 부분 ###################</p>
<p>탈퇴하는 회원의 아이디와 일치하는 게시판을 찾아 지워주려고....</p>
<p>################### 추가한 부분 ###################</p>
<p> </p>
<p> </p>
<p>// 회원탈퇴일을 저장
$date = date("Ymd");
$sql = " update {$g5['member_table']} set mb_leave_date = '{$date}' where mb_id = '{$member['mb_id']}' ";
sql_query($sql);</p>
<p>// 3.09 수정 (로그아웃)
unset($_SESSION['ss_mb_id']);</p>
<p>if (!$url)
$url = G5_URL;</p>
<p>//소셜로그인 해제
if(function_exists('social_member_link_delete')){
social_member_link_delete($member['mb_id']);
}</p>
<p>alert(''.$member['mb_nick'].'님께서는 '. date("Y년 m월 d일") .'에 회원에서 탈퇴 하셨습니다.', $url);
?></p>
<p>
결과는
DB에서 g5_write_...
테이블명까지는 잘 삭제됩니다.
그리고 먹통이 됩니다만...
고수님들 한번 봐주시고 도와주세요~
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
5년 전
해당 삭제 쿼리마다 echo 1;이런식으로 하나씩 넣어보세요 어느부분에서 에러나는지 파악이 먼저 인것같네요
드랍테이블까진 잘된다고했으니 뒤이어서오는 delete_cache_latest가 의심되긴하는데... 혹시모르니 delete_cache_latest아래로 echo 1한번씩찍어서 어디까지 실행이 되는지 체크해보는게 좋을것같네요
로그인 후 평가할 수 있습니다
답변에 대한 댓글 2개
�
망이망소이
5년 전
P
Policia
5년 전
아 맞다 echo 보단
sql_query($sql, true)로주고 에러로그를 확인해보세요
6번이 안된다면 에러로그 true주고 에러로그를 살펴봐야겠네요
sql_query($sql, true)로주고 에러로그를 확인해보세요
6번이 안된다면 에러로그 true주고 에러로그를 살펴봐야겠네요
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
sql_query(" delete from {$g5['board_table']} where bo_table = '{$member['mb_id']}' "); //관리자board리스트에서 제거:OK
// 2최신글 삭제
sql_query(" delete from {$g5['board_new_table']} where bo_table = '{$member['mb_id']}' "); //최신글삭제
// 3스크랩 삭제
sql_query(" delete from {$g5['scrap_table']} where bo_table = '{$member['mb_id']}' "); //스크랩삭제
// 4파일 삭제
sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$member['mb_id']}' ");//파일삭제
// 5게시판 테이블 DROP
sql_query(" drop table g5_write_{$member['mb_id']} ");
// 6게시판 폴더 전체 삭제
rmdir(G5_DATA_PATH."/file/".$member['mb_id']);