회원탈퇴 후 같은 아이디로 가입못하게 하는 방법... > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

회원탈퇴 후 같은 아이디로 가입못하게 하는 방법... 정보

회원탈퇴 후 같은 아이디로 가입못하게 하는 방법...

본문

그누보드3에서 aaa라는 사람이 회원가입을 하고 게시판에 글을 씁니다.
그리고 탈퇴를 합니다. 
그 뒤에 다른 사람이 aaa라는 아이디로 새로 가입을 합니다.
그러면 예전에 aaa가 쓴 글을 수정 또는 삭제가 가능한데요.

탈퇴한 아이디로 가입을 하지 못하게 하는 방법을 알려주시면 감사드리겠습니다.

밑에 답변이 있긴 한데 수정을 해도 적용이 잘안되더라구요.

===================================================================================

회원 탈퇴시 회원 ID를 삭제하도록 하는것이 아니라 회원의 ID만 남겨두고 나머지 모든 항목(비밀번호포함)은 모두 지워버리도록 하는 방법이 있습니다. 
회원id를 삭제하도록 하는 delete 문을 update문으로 변경만 하시면 될 것 같군요.
bbs/admin/admin.lib.php 에 있는 function memberdelete($mb_id) 에서...

// 회원 삭제
function memberdelete($mb_id)
{
    global $cfg, $default;

    include_once "./lib/file.lib.php";

    $sql = " select mb_recommend from $cfg[table_member] where mb_id= '$mb_id' ";
    $mb = sql_fetch($sql);
    if ($mb[mb_recommend]) {
        $row = sql_fetch(" select count(*) from $cfg[table_member] where mb_id = '$mb[mb_recommend]' ");
        if ($row[0]) {
            insert_point($mb[mb_recommend], $default[de_recommend_point] * (-1), "{$mb_id}의 회원자료 삭제로 인한 추천인 포인트 반환");
        }
    }

// 회원 자료 삭제
     sql_query(" delete from $cfg[table_member] where mb_id = '$mb_id' ");

// 포인트 테이블에서 자료 삭제
    sql_query(" delete from $cfg[table_point] where mb_id = '$mb_id' ");
    
여기서 어떻게 수정을 해야 될까요?

댓글 전체

그렇게 설정하면 개인정보 문제 때문에 태클이 많이 들어올 것 같습니다. 개인정보는 60일정도만 보관하는데...999999일로 바꾸면 같은 주민번호로는 평생 가입을 못합니다. ^^;;
그럼 탈퇴버턴 누르면 주민번호, 이메일 초기화 시키면되죠

bbs/mbleave.php

//12번째 줄 밑에
$sql = " update $cfg[table_member] set mb_jumin  = '' where mb_id = '$member[mb_id]' ";
//주민번호 지우기..
$sql = " update $cfg[table_member] set mb_email  = '' where mb_id = '$member[mb_id]' ";
//이메일 지우기

혹은

// 주민번호 이메일 초기화
$sql = " update $cfg[table_member] set mb_jumin  = '' , mb_email  = '' where mb_id = '$member[mb_id]' ";


참고로 관리자란에서 삭제시 delete  소스 대신
 update $cfg[table_member] set mb_jumin  = '' , mb_email  = '' where mb_id = '$member[mb_id]'

이걸루 해야겠쬬...

------------------------
다른방법을 생각하면

가입일이랑 글 마지막 수정한 란을 비교하는 방법도 있게네요....
가입일이랑 게시글 등록한 날자를 비교해서 수정못하고 삭제 못하도록 해도 되고요

if ($member[mb_datetime] < $write[wr_datetime])
  alert("탈퇴한 회원 글 입니다.  수정 권한이 없습니다.");

이게 가장 깔끔할것 같군요...
말씀해주신대로 수정을 했는데 탈퇴가 안됩니다. (*) 표시도 안나구요.
탈퇴버튼을 누른 후 로그인을 하면 다시 되더라구요.
이메일 부분은 공백으로 나옵니다.

mbleave.php 파일 수정

// 회원탈퇴일을 저장
$date = date("Ymd");
$sql = " update $cfg[table_member] set mb_leave_date = '$date' where mb_id = '$member[mb_id]' ";
//주민번호 지우기..
$sql = " update $cfg[table_member] set mb_jumin  = '' where mb_id = '$member[mb_id]' ";

sql_query($sql);

# 3.09 수정 (로그아웃)
session_unregister("ss_mb_id");

if (!$url) {
    $url = "./";
}

alert("{$member[mb_name]}님께서는 " . date("Y년 m월 d일") . "에 회원에서 탈퇴 하셨습니다.", $url);

=================================================================================

admin.lib.php 파일은 아래처럼 수정했는데 탈퇴도 안되고 주민번호도 그대로 남아 있습니다.

// 회원 삭제
function memberdelete($mb_id)
{
    global $cfg, $default;

    include_once "./lib/file.lib.php";

    $sql = " select mb_recommend from $cfg[table_member] where mb_id= '$mb_id' ";
    $mb = sql_fetch($sql);
    if ($mb[mb_recommend]) {
        $row = sql_fetch(" select count(*) from $cfg[table_member] where mb_id = '$mb[mb_recommend]' ");
        if ($row[0]) {
            insert_point($mb[mb_recommend], $default[de_recommend_point] * (-1), "{$mb_id}의 회원자료 삭제로 인한 추천인 포인트 반환");
        }
    }

// 회원 자료 삭제
//sql_query(" delete from $cfg[table_member] where mb_id = '$mb_id' ");

//주민번호 삭제
sql_query(" update $cfg[table_member] set mb_jumin  = '' where mb_id = '$member[mb_id]' ");
;;; 실수..

$sql = " update $cfg[table_member] set mb_leave_date = '$date' where mb_id = '$member[mb_id]' ";

===>
$sql = " update $cfg[table_member] set mb_leave_date = '$date',mb_jumin  = ''  where mb_id = '$member[mb_id]' ";

수정해보세요
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

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