이름 없이 자동가입되는 회원 삭제

자동시스템을 통해서 이름없이 회원가입이 이루어 지고 있는 사이트가 늘어 나고 있습니다.

이름 없는 회원은 개별 관리 없이 삭제처리하면 좀 맘 편히 사이트 관리가 되겠죠...


lib/common.lib.php

// 회원 정보삭제
function member_remove($mb_id)
{
global $config;
global $g5;

$sql = " select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from {$g5['member_table']} where mb_id= '".$mb_id."' ";
$mb = sql_fetch($sql);
if ($mb['mb_recommend']) {
$row = sql_fetch(" select count(*) as cnt from {$g5['member_table']} where mb_id = '".addslashes($mb['mb_recommend'])."' ");
if ($row['cnt'])
insert_point($mb['mb_recommend'], $config['cf_recommend_point'] * (-1), $mb_id.'님의 회원자료 삭제로 인한 추천인 포인트 반환', "@member", $mb['mb_recommend'], $mb_id.' 추천인 삭제');
}

// 회원자료 삭제
sql_query(" delete from {$g5['member_table']} where mb_id = '$mb_id' ");

// 포인트 테이블에서 삭제
sql_query(" delete from {$g5['point_table']} where mb_id = '$mb_id' ");

// 그룹접근가능 삭제
sql_query(" delete from {$g5['group_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['scrap_table']} where mb_id = '$mb_id' ");

// 관리권한 삭제
sql_query(" delete from {$g5['auth_table']} where mb_id = '$mb_id' ");

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

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

// 아이콘 삭제
@unlink(G5_DATA_PATH.'/member/'.substr($mb_id,0,2).'/'.$mb_id.'.gif');
}



-----------------------------------------------------------------------------------------------------------



tail.sub.php



<?php
$rsql = " select mb_id from {$g5['member_table']} where mb_name = '' ";
$rmb = sql_fetch($rsql);
if ($rmb['mb_id']) {
member_remove($rmb['mb_id']);
}
?>
|

댓글 16개

http://sir.co.kr/qa/107448?sfl=mb_id%2C2&stx=cjfgjs6745#answer_107832 이런 제가 소스 짠 기능도 있지만..
이게 뭔가 더 효율적일꺼같네용 ㅎ ~~ 추천 드립니다.!!
좋은팁감사합니다.
좋은팁감사합니다.
감사합니다.
여러방법으로 응용이 가능할겁니다.
보이지 않은 이름이 db에는  로 되어 있는 경우도 있더군요.
$rsql = " select mb_id from {$g5['member_table']} where mb_name = '' or mb_name = ' "; 로
보강을 하면 어떨까 싶습니다 ㅎㅎ
$rsql = " select mb_id from {$g5['member_table']} where mb_name in ('', ' ') ";
별별 이름이 계속 추가 되고 있네요..
$rsql = " select mb_id from {$g5['member_table']} where mb_name in ('', ' ', 'Ȳ') ";
훗.. 한방에 깔끔하게 해결되네요. 감사합니다.
그누보드 버전업을 생각해서 lib/common.lib.php 가 아닌 tail.sub.php 에 함께 넣는것이 편리하네요. ^^
제로나라님 감사합니다
덕분에 한결 편해졌네요 해피정님 처럼 tail.sub.php 에 몰아넣고 패치해놨네요.

Ȳ 이거까지 추가해놓으니 좋네요
저에게도 많은 도움이 되었습니다
감사합니다.
덕분에 스팸 회원 등록 해결하였습니다. 속이 다 시원하네요~

그누보드4 사용 중이라서, 위 코드 중 g5 ->g4로 변경하여 적용하였더니 잘 됩니다.

감사합니다!!
제로나라님 덕분에 해결했습니다
속이다 시원하네요 ㅋㅋ
좋은팁감사합니다.
감사합니다 넣었는데 스팸회원가입 해결되었으면하네요
댓글을 작성하시려면 로그인이 필요합니다.

그누보드5 팁자료실

+
제목 글쓴이 날짜 조회
9년 전 조회 9,878
9년 전 조회 5,615
9년 전 조회 7,479
9년 전 조회 8,771
9년 전 조회 5,745
9년 전 조회 5,208
9년 전 조회 5,504
9년 전 조회 8,541
9년 전 조회 7,145
9년 전 조회 1.6만
9년 전 조회 6,152
9년 전 조회 6,995
9년 전 조회 5,585
10년 전 조회 6,814
10년 전 조회 1.2만
10년 전 조회 2.6만
10년 전 조회 1.3만
10년 전 조회 1만
10년 전 조회 9,468
10년 전 조회 1만
10년 전 조회 6,712
10년 전 조회 8,426
10년 전 조회 9,340
10년 전 조회 1만
10년 전 조회 1.2만
10년 전 조회 8,817
10년 전 조회 8,611
10년 전 조회 6,209
10년 전 조회 8,030
10년 전 조회 7,692