[허접팁][초보만 보시길...] 회원 완전삭제 관리자가 하기 > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

[허접팁][초보만 보시길...] 회원 완전삭제 관리자가 하기 정보

[허접팁][초보만 보시길...] 회원 완전삭제 관리자가 하기

첨부파일

admin.lib.zip (3.5K) 418회 다운로드 2008-03-07 10:00:49
admin.lib-utf8.zip (3.6K) 136회 다운로드 2008-03-07 10:00:49

본문

이건 팁도 뭐도 아니지만....
저같이 그누보드 처음 접해본 분들이 있으실꺼 같아 이렇게 올립니다.

테스트 아이디 등을 생성해서 테스트 하는데 회원 삭제가 되지 않아 답답하던 차에
질답 게시판을 검색하니 탈퇴시 바로 삭제하는 방법을 올려주신 분이 계셔서 간단하게 수정을 하였습니다.

회원이 탈퇴하거나 관리자가 삭제 하였을시 처음에는 회원 아이디과 닉네임을 보관하고(아이디가 빨간색이 되죠)

관리자가 한번더 삭제를 누르면 완전 삭제 하도록 수정 했습니다.

이방법이 좀더 편한 것 같네요...


파일 : adm/admin.lib.php



40라인 부근
// 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025
    if ($mb[mb_level] > 1) {
        $sql = " update $g4[member_table]
                    set mb_password = '',
                        mb_level = '1',
                        mb_email = '',
                        mb_homepage = '',
                        mb_password_q = '',
                        mb_password_a = '',
                        mb_tel = '',
                        mb_hp = '',
                        mb_zip1 = '',
                        mb_zip2 = '',
                        mb_addr1 = '',
                        mb_addr2 = '',
                        mb_birth = '',
                        mb_sex = '',
                        mb_signature = '',
                        mb_memo = '".date("Ymd",$g4['server_time'])." 삭제함\n\n$mb[mb_memo]',
                        mb_leave_date = '".date("Ymd",$g4['server_time'])."'
                  where mb_id = '$mb_id' ";
        //echo $sql; exit;
        sql_query($sql);
    } else if($mb[mb_level] == 1) {
  // 회원 자료 삭제
  sql_query(" delete from $g4[member_table] where mb_id = '$mb_id' ");
  /*
  // 삭제된 자료를 또 삭제하면 완전 삭제함
  if ($mb[mb_nick] != '[삭제됨]')
  {
   // 다른 사람이 이 회원아이디를 사용하지 못하도록 아이디만 생성해 놓습니다.
   // 게시판에서 회원아이디는 삭제하지 않기 때문입니다.
   sql_query(" insert into $g4[member_table] set mb_id = '$mb_id', mb_name='$mb[mb_name]', mb_nick='[삭제됨]', mb_ip='$mb[mb_ip]', mb_datetime = '$g4[time_ymdhis]' ");
  }
  */   
  // 포인트 테이블에서 삭제
  sql_query(" delete from $g4[point_table] where mb_id = '$mb_id' ");
  
  // 그룹접근가능 삭제
  sql_query(" delete from $g4[group_member_table] where mb_id = '$mb_id' ");
  
  // 쪽지 삭제
  sql_query(" delete from $g4[memo_table] where me_recv_mb_id = '$mb_id' or me_send_mb_id = '$mb_id' ");
  
  // 스크랩 삭제
  sql_query(" delete from $g4[scrap_table] where mb_id = '$mb_id' ");
  
  // 관리권한 삭제
  sql_query(" delete from $g4[auth_table] where mb_id = '$mb_id' ");

  // 그룹관리자인 경우 그룹관리자를 공백으로
  sql_query(" update $g4[group_table] set gr_admin = '' where gr_admin = '$mb_id' ");

  // 게시판관리자인 경우 게시판관리자를 공백으로
  sql_query(" update $g4[board_table] set bo_admin = '' where bo_admin = '$mb_id' ");

  // 아이콘 삭제
  @unlink("$g4[path]/data/member/".substr($mb_id,0,2)."/$mb_id.gif");
 }

그냥 간단히 if else 문만 추가 했습니다.

이 팁을 보시고 저 같이 처음에 아무것도 몰라서 고생하시는 분들이 안계셨으면 좋겠습니다.


------

헉 오류가 나시는 분들께서는 왜그러신지... 저도잘 모르겠네요..
지금 여기소스 복사해서 붙여 넣기 해도 제가 사용하는 곳에서는 문제가 없어서 저도 확인을 해보지 못했습니다.

제가 사용하는 버전과 틀려서 그런가요??
전 지금 그누보드 최신버전 사용하고 있습니다..

그리고 불편하실꺼 같아 위에 컬러를 입혔습니다.
제가 추가한 것은 빨간색으로 if else문 밖에 없고요

수정한 것은 회원자료 삭제하는 쿼리문 주석 제거한 것 (초록색) 이렇게 밖에 없습니다.

혹시나 복사 붙여 넣기에서 잘못 되었지 않을까 해서 해당 파일을 첨부해서 올릴게요...

경로 : adm/admin.lib.php

파일과 비교해서 수정하시면 될거 같습니다.
추천
4
  • 복사

댓글 35개

테스트 회원가입후 메일인증을 안하니까 로그인도 않되고 동일 아이디와 동일 주민번호로 재가입이 않되더군요.
탈퇴도 할수없고 관리자에서 회원 삭제해도 삭제가 않되어서 난감했는데 감사합니다.

추가하니
Parse error: syntax error, unexpected $end in /web/home/im1911/html/ig/adm/admin.lib.php on line 307
에러납니다.
이상하네요... 전 지금 잘되는데 버전상의 문제가 있지 않을까요?
수정한 곳도 한줄 정도 뿐이고요...

전 버전 4.21.04 (07.12.04) [보안관련 필수 패치] 이것을 사용하는데..

하위버전에서는 뭔가 틀려진걸까요?

제 파일을 올려 놓았습니다.

저도 뭐가 문제인지 궁금하네요.. ㅠㅠ
전지금 이버전을 사용하는데...

4.21.04 (07.12.04) [보안관련 필수 패치]

저도 이번에 처음 그누보드를 사용해봐서 이전버전은어떻게 되어 있는지 잘 모르겠어요...

버전이 틀려서 그럴까요??
흠..굳이 저소스를 추가 하지 않아도 65~100라인의 삭제 관련 소스가 주석처리 되어있습니다.
주석처리 되어 있는 소스를 살리면 완전 삭제 가능합니다.

단....삭제를 한 후 또 삭제를 해야 영구 삭제 됩니다.
광고글올리는넘 땜에 고생에 피해를 입었습니다..

회원삭제가 안되는참에,,,

다운받아 덮어쓰니,,

간단하게 해결됬습니다.

감사합니다.
상단 내용만 보고 수정했다가 에러나서 포기할까 생각했는데
답글을 보고 수정하여 지금은 잘 사용하고 있습니다.
간단한 답글은 초짜를 행복하게 합니다. 으흐흐흐~~~
© SIRSOFT
현재 페이지 제일 처음으로