이름 없이 자동가입되는 회원 삭제 정보
이름 없이 자동가입되는 회원 삭제본문
자동시스템을 통해서 이름없이 회원가입이 이루어 지고 있는 사이트가 늘어 나고 있습니다.
이름 없는 회원은 개별 관리 없이 삭제처리하면 좀 맘 편히 사이트 관리가 되겠죠...
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']);
}
?>
이름 없는 회원은 개별 관리 없이 삭제처리하면 좀 맘 편히 사이트 관리가 되겠죠...
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']);
}
?>
추천
11
11
댓글 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 = '' 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 ('', ' ', 'Ȳ') ";
$rsql = " select mb_id from {$g5['member_table']} where mb_name in ('', ' ', 'Ȳ') ";
훗.. 한방에 깔끔하게 해결되네요. 감사합니다.
그누보드 버전업을 생각해서 lib/common.lib.php 가 아닌 tail.sub.php 에 함께 넣는것이 편리하네요. ^^
그누보드 버전업을 생각해서 lib/common.lib.php 가 아닌 tail.sub.php 에 함께 넣는것이 편리하네요. ^^
제로나라님 감사합니다
덕분에 한결 편해졌네요 해피정님 처럼 tail.sub.php 에 몰아넣고 패치해놨네요.
Ȳ 이거까지 추가해놓으니 좋네요
덕분에 한결 편해졌네요 해피정님 처럼 tail.sub.php 에 몰아넣고 패치해놨네요.
Ȳ 이거까지 추가해놓으니 좋네요
저에게도 많은 도움이 되었습니다
감사합니다.
덕분에 스팸 회원 등록 해결하였습니다. 속이 다 시원하네요~
그누보드4 사용 중이라서, 위 코드 중 g5 ->g4로 변경하여 적용하였더니 잘 됩니다.
감사합니다!!
그누보드4 사용 중이라서, 위 코드 중 g5 ->g4로 변경하여 적용하였더니 잘 됩니다.
감사합니다!!
제로나라님 덕분에 해결했습니다
속이다 시원하네요 ㅋㅋ
속이다 시원하네요 ㅋㅋ
좋은팁감사합니다.
굿팁이네요. ^^
관련글 좌표
https://sir.kr/qa/303434 (특정 패턴 추가하기)
https://sir.kr/g4_tiptech/34251 (비밀값 넘기는 방식)
http://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=101 (주소변경 방식)
관련글 좌표
https://sir.kr/qa/303434 (특정 패턴 추가하기)
https://sir.kr/g4_tiptech/34251 (비밀값 넘기는 방식)
http://gnustudy.com/bbs/board.php?bo_table=gnu_tip&wr_id=101 (주소변경 방식)
감사합니다 넣었는데 스팸회원가입 해결되었으면하네요