테스트 사이트 - 개발 중인 베타 버전입니다

회원 탈퇴 시 데이터 완전 삭제 처리 방법 (코어 수정 없이)

· 4개월 전 · 541 · 9

그누보드 기본 기능에서는 회원 탈퇴 시 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로 처리 후 리디렉션 시키는 방법도 있습니다.

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 9개

4개월 전

작성한글에 대해서도 생각해야 할듯 싶은데요

신규가입자가 삭제한 아이디로 생성을 한다면.

4개월 전

@카이루 저도 이게 큰 문제라고 생각..

4개월 전

전체 테이블을 순회하면서 mb_id 필드가 있으면 관련 데이터를 모두 삭제하는 걸 추가해 주면 좋지 않을까 싶습니다. 단순히 회원 DB에서만 삭제한다면 문제가 생길 수 있습니다

그누는 게시판이 여러테이블이기도 하고 게시판글이나 댓글 많이 쓴 회원이 탈퇴하거나 집단탈퇴 현상이 있다면 delete 남발이 이뤄지고 디비락걸리고 서버는 메롱이 됩니다 소프트 delete 로직이 선 적용되어야 하는게 맞다고 봅니다

 

간장게장같은남자
4개월 전

저거 밑에다가 

// 모든게시판에서 작성된 글 삭제
$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'");
}

이거 넣으면 될거같습니다만..

4개월 전

필요했는데, 감사합니다. ^^

4개월 전

유용한 정보네요 감사합니다.

4개월 전

감사합니다

감사합니다.

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168