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

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

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']);

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

회원로그인

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