회원 탈퇴 시 데이터 완전 삭제 처리 방법 (코어 수정 없이) 정보
회원 탈퇴 시 데이터 완전 삭제 처리 방법 (코어 수정 없이)본문
그누보드 기본 기능에서는 회원 탈퇴 시 mb_leave_date만 기록되고 실제 데이터는 DB에 그대로 남아 있습니다.
이게 프로젝트 보안정책이나 개인정보처리방침에 맞지 않는 경우가 있어서,
“회원 정보 완전 삭제” 기능을 추가하는 방법을 정리해봤습니다.
1. /bbs/member_leave.php 하단에 삭제 코드 추가
// 회원 데이터 완전 삭제
$mb_id = $member['mb_id'];
sql_query("DELETE FROM {$g5['member_table']} WHERE mb_id = '$mb_id'");
sql_query("DELETE FROM {$g5['memo_table']} WHERE me_recv_mb_id = '$mb_id' OR me_send_mb_id = '$mb_id'");
sql_query("DELETE FROM {$g5['login_table']} WHERE mb_id = '$mb_id'");
// 추가로 필요한 데이터도 여기에 포함
2. 코어를 수정하지 않고 테마에서 처리하고 싶다면?
→ theme 폴더에 member_leave.skin.php를 만들어 POST로 처리 후 리디렉션 시키는 방법도 있습니다.
6
댓글 8개

작성한글에 대해서도 생각해야 할듯 싶은데요
신규가입자가 삭제한 아이디로 생성을 한다면.

@카이루 저도 이게 큰 문제라고 생각..
전체 테이블을 순회하면서 mb_id 필드가 있으면 관련 데이터를 모두 삭제하는 걸 추가해 주면 좋지 않을까 싶습니다. 단순히 회원 DB에서만 삭제한다면 문제가 생길 수 있습니다
그누는 게시판이 여러테이블이기도 하고 게시판글이나 댓글 많이 쓴 회원이 탈퇴하거나 집단탈퇴 현상이 있다면 delete 남발이 이뤄지고 디비락걸리고 서버는 메롱이 됩니다 소프트 delete 로직이 선 적용되어야 하는게 맞다고 봅니다

저거 밑에다가
// 모든게시판에서 작성된 글 삭제
$bo_result = sql_query("select * from g5_board");
while($row = sql_fetch_array($bo_result)) {
sql_query("DELETE FROM `g5_write_".$row['bo_table']."` WHERE `mb_id` = '$mb_id'");
sql_query("DELETE FROM `g5_board_new` WHERE `mb_id` = '$mb_id'");
}
이거 넣으면 될거같습니다만..

필요했는데, 감사합니다. ^^
유용한 정보네요 감사합니다.

감사합니다