게시판삭제 관련 질문입니다.

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
게시판삭제 관련 질문입니다.

QA

게시판삭제 관련 질문입니다.

본문

회원에게 회원ID와 동일한 명칭의 게시판을 생성해줬다가

회원탈퇴시에 생성해줬던 게시판과 파일/폴더들도 다 함께 자동으로 지워지게 하고자하여

아래와 같이 해봤습니다.

 

/adm/board_delete.inc.php 입니다.


<?php
// board_delete.php , boardgroup_delete.php 에서 include 하는 파일
if (!defined('_GNUBOARD_')) exit;
if (!defined('_BOARD_DELETE_')) exit; // 개별 페이지 접근 불가
// $tmp_bo_table 에는 $bo_table 값을 넘겨주어야 함
if (!$tmp_bo_table) { return; }
// 게시판 1개는 삭제 불가 (게시판 복사를 위해서)
//$row = sql_fetch(" select count(*) as cnt from $g5['board_table'] ");
//if ($row['cnt'] <= 1) { return; }
// 게시판 설정 삭제
sql_query(" delete from {$g5['board_table']} where bo_table = '{$tmp_bo_table}' ");
// 최신글 삭제
sql_query(" delete from {$g5['board_new_table']} where bo_table = '{$tmp_bo_table}' ");
// 스크랩 삭제
sql_query(" delete from {$g5['scrap_table']} where bo_table = '{$tmp_bo_table}' ");
// 파일 삭제
sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$tmp_bo_table}' ");
// 게시판 테이블 DROP
sql_query(" drop table {$g5['write_prefix']}{$tmp_bo_table} ", FALSE);
delete_cache_latest($tmp_bo_table);
// 게시판 폴더 전체 삭제
rm_rf(G5_DATA_PATH.'/file/'.$tmp_bo_table);
?>

게시판 삭제시 삭제하는 게시판관련된 파일들과 폴더까지 지우는 부분인것 같아서

이중 일부를

회원탈퇴처리시 탈퇴하는 회원ID와

같은ID의 게시판을 지우는 것에 사용하려고

다음과 같이 적용해봤습니다. 

 

/bbs/member_leave.php


<?php
include_once('./_common.php');
if (!$member['mb_id'])
    alert('회원만 접근하실 수 있습니다.');
if ($is_admin == 'super')
    alert('최고 관리자는 탈퇴할 수 없습니다');
if (!($_POST['mb_password'] && check_password($_POST['mb_password'], $member['mb_password'])))
    alert('비밀번호가 틀립니다.');
// $tmp_bo_table 에는 $bo_table 값을 넘겨주어야 함
 
################### 추가한 부분 ###################
탈퇴하는 회원의 아이디와 일치하는 게시판을 찾아 지워주려고....
################### 추가한 부분 ###################

if (!$member['mb_id']) { return; }
// 게시판 설정 삭제
sql_query(" delete from {$g5['board_table']} where bo_table = '{$member['mb_id']}' ");
// 최신글 삭제
sql_query(" delete from {$g5['board_new_table']} where bo_table = '{$member['mb_id']}' ");
// 스크랩 삭제
sql_query(" delete from {$g5['scrap_table']} where bo_table = '{$member['mb_id']}' ");
// 파일 삭제
sql_query(" delete from {$g5['board_file_table']} where bo_table = '{$member['mb_id']}' ");
// 게시판 테이블 DROP
sql_query(" drop table {$g5['write_prefix']}{$member['mb_id']} ", FALSE);
delete_cache_latest($member['mb_id']);
// 게시판 폴더 전체 삭제
rm_rf(G5_DATA_PATH.'/file/'.$member['mb_id']);
 
################### 추가한 부분 ###################
탈퇴하는 회원의 아이디와 일치하는 게시판을 찾아 지워주려고....
################### 추가한 부분 ###################
 
 
// 회원탈퇴일을 저장
$date = date("Ymd");
$sql = " update {$g5['member_table']} set mb_leave_date = '{$date}' where mb_id = '{$member['mb_id']}' ";
sql_query($sql);
// 3.09 수정 (로그아웃)
unset($_SESSION['ss_mb_id']);
if (!$url)
    $url = G5_URL;
//소셜로그인 해제
if(function_exists('social_member_link_delete')){
    social_member_link_delete($member['mb_id']);
}
alert(''.$member['mb_nick'].'님께서는 '. date("Y년 m월 d일") .'에 회원에서 탈퇴 하셨습니다.', $url);
?>

 

결과는 

DB에서 g5_write_...

테이블명까지는 잘 삭제됩니다. 

그리고 먹통이 됩니다만...

고수님들 한번 봐주시고 도와주세요~

이 질문에 댓글 쓰기 :

답변 1

해당 삭제 쿼리마다 echo 1;이런식으로 하나씩 넣어보세요 어느부분에서 에러나는지 파악이 먼저 인것같네요

 

드랍테이블까진 잘된다고했으니 뒤이어서오는 delete_cache_latest가 의심되긴하는데... 혹시모르니 delete_cache_latest아래로 echo 1한번씩찍어서 어디까지 실행이 되는지 체크해보는게 좋을것같네요

// 1게시판 설정 삭제
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']);

답변을 작성하시기 전에 로그인 해주세요.
전체 11
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT