웹마스터 팁
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
탈퇴한 회원이 재가입 못하게 막는 방법 & 탈퇴한 회원 정보 보전 방법
2010.09.17 00:56
제 홈피에 있던 글이어서 말이 좀 짧습니다. 양해부탁드립니다
출처 : http://sejin7940.co.kr/?mid=xe_tips&document_srl=4107
-----------------------------------
사용하다보면 이런 기능을 원하는 경우가 있을듯하다.
1) 탈퇴해도 가입했던 회원 데이터가 남게 할수는 없을까요? (불량회원 등과 연락해야할 일이 있을 경우)
2) 탈퇴한 회원이 재가입 못하게 할 수는 없을까?
-> 방법을 생각하다가, 결국 XE의 '사용중지' 기능을 변형해서 원하는 기능을 구현가능한 방법을 생각해냈다.
XE 자체 소스를 수정하여, 회원탈퇴시 실제 탈퇴가 되는게 아니라, 사용중지 상태로 자동변경되도록 해둔거죠
사용중지 가 되면, 해당회원은 로그인도 불가능하고, 메일을 이용한 ID찾기/PW찾기도 전부 불가능해집니다 반대로, 기존 회원정보는 그대로 전부 보존되기에, 관리자는 XE관리자 기능의 회원정보 를 통해 해당 회원정보를 기존 그대로 확인가능합니다 ID도 유지되기에 동일ID로 가입도 불가능하게 되고, 동일닉네임도 사용할 수 없게 되고 특히 회원가입확장모듈의 주민번호 저장기능까지 사용하시면, 동일 주민번호로는 가입조차 못하게 막을 수 있습니다 최상이죠? ^^
-> 아래의 사항들은, XE 소스를 변경해야할 부분들입니다 다만 수정된 부분들은 XE Core 부분이기에, 수정전에 백업을 해두시고, 만약 Core 업데이트로 웝상복귀될 경우, 다시 수정하시면 됩니다. modules/member/lang/ko.lang.php 파일에서
$lang->msg_user_denied
부분을 찾아서 아래처럼 수정
$lang->msg_user_denied = '탈퇴하신 아이디 입니다 (참고:동일한 아이디로의 가입은 불가합니다)';
modules/member/member.controller.php 파일 에서
function deleteMember ($member_srl) { 를 찾아서 // member 테이블에서 삭제
$output = executeQuery('member.deleteMember', $args); 부분을 아래처럼 수정 // member 테이블에서 삭제
$args->denied = "Y";
$output = executeQuery('member.updateMember', $args);
XE 자체 소스를 수정하여, 회원탈퇴시 실제 탈퇴가 되는게 아니라, 사용중지 상태로 자동변경되도록 해둔거죠
사용중지 가 되면, 해당회원은 로그인도 불가능하고, 메일을 이용한 ID찾기/PW찾기도 전부 불가능해집니다 반대로, 기존 회원정보는 그대로 전부 보존되기에, 관리자는 XE관리자 기능의 회원정보 를 통해 해당 회원정보를 기존 그대로 확인가능합니다 ID도 유지되기에 동일ID로 가입도 불가능하게 되고, 동일닉네임도 사용할 수 없게 되고 특히 회원가입확장모듈의 주민번호 저장기능까지 사용하시면, 동일 주민번호로는 가입조차 못하게 막을 수 있습니다 최상이죠? ^^
-> 아래의 사항들은, XE 소스를 변경해야할 부분들입니다 다만 수정된 부분들은 XE Core 부분이기에, 수정전에 백업을 해두시고, 만약 Core 업데이트로 웝상복귀될 경우, 다시 수정하시면 됩니다. modules/member/lang/ko.lang.php 파일에서
$lang->msg_user_denied
부분을 찾아서 아래처럼 수정
$lang->msg_user_denied = '탈퇴하신 아이디 입니다 (참고:동일한 아이디로의 가입은 불가합니다)';
modules/member/member.controller.php 파일 에서
function deleteMember ($member_srl) { 를 찾아서 // member 테이블에서 삭제
$output = executeQuery('member.deleteMember', $args); 부분을 아래처럼 수정 // member 테이블에서 삭제
$args->denied = "Y";
$output = executeQuery('member.updateMember', $args);
댓글 9
-
YO-DA
2010.09.17 10:00
오홋^^ 감사합니다^^ -
ㅇㄹㅇㄹ
2010.10.01 09:18
주민번호 저장은 개인정보보호법이 적용안되는 느낌이군요.
-
djaos
2011.08.15 08:20
문제점이 많네요
저건 사용하면 안됨 -
sejin7940
2011.08.16 10:18
저도 궁금하네요. 문제점이 어떤 부분인가요?
제 예상으로는.. 소스상의 문제라는게 아니라..
탈퇴한 회원의 정보를 보관하고 있다는게 운영상의 문제라는 것 같은데..
맞나요?
민감한 주민번호를 저장을 처음부터 안 하시면 되고
연락처 등의 기록 남는것도 싫으시면 소스를 더 수정해서.. ID 랑 이름정도만 기록에 남기는거면 조금 덜 하겠죠..? -
한호석닉넴
2011.08.17 15:32
탈퇴하는 회원 정보를 논리적으로 삭제하는 것은 9월30일부터 시행되는 개인정보보호법에 위배됩니다. 새롭게 시행되는 개인정보보호법에서는 물지적인 삭제를 요구하고 있으며, 글쓴이님이 말씀하신것처럼 상황에 따라 필요한 경우 대상 회원의 동의를 구한 후
네트워크가 분리된 DB에 보관하는 경우입니다. 이렇게 되면 말씀하신 기능의 구현은 현실적으로 어려울것 같네요.
하지만 개인정보보호법에 대한 내용을 배제하고 본다면 개성있는 발상인것 같습니다. -
SMaker
2011.08.17 23:38
이렇게 하면 사용 중지 기능을 활용하지 못하게 되는 문제점이 있습니다.
새로운 방안을 찾아봐야죠!
-
zero28
2011.09.14 22:40
탈퇴를 했는데도 개인 정보를 그대로 갖고 있다는 건
탈퇴를 가장한 블록 처리일 뿐입니다 회원을 농락하는 처사라고 생각됩니다
제 생각으로는 IP를 탈퇴 시 자동 저장되게 해서 같은 IP로는 회원 가입 불가/보류하는 것이
회원과 운영자가 다 인정할 수 있는 중복가입을 막는 가장 합리적 방안이라고 생각합니다
물론 IP는 통신사나 쓰는 컴퓨터를 바꾸면 달라지지만 피씨방 폐인이 아닌 이상
1인이 주로 쓰는 컴퓨터는 보통 3대 이하니까요
탈퇴자에 대해 이 이상 수집하는 것은 결국 개인 정보 침해라고 판단됩니다 -
본체
2013.06.06 17:43
보관하는 이유가 있기 때문이죠.. 불법행위를 근절하고자 하는것이죠..
-
XE만세
2013.06.22 04:15
보시는 분들 참고//1.5 기준 $output = executeQuery('member.updateMemberDeniedInfo', $args); 입니다.