글 수 151
한글사랑 님의 레벨 10만드는것과 영진님의 레벨 10 로그인 불과를 합쳐서
레벨 10에 대한 회원의 로그인 자체를 막는다는 내용입니다^^;
# 한글사랑님이 만드신것(회원 탈퇴요청서 DB삭제않고, 레벨10으로 만들기) #
회원 자의에 의해 탈퇴를 하여야 하나, 필요한 분이 있을수 있어 올립니다.
수정할 소스는 member_out.php 입니다.
우선적으로 기본 사용(글쓰기,코맨트등)을 9등급 처리한 상태에서 10등급은 이용이 안되게 하면 좋겠네요.
원본 소스는 그냥 주석 처리만 했습니다..
주석 보시면 이해가 가리라 생각 합니다.
<?
// 라이브러리 함수 파일 인크루드
include "lib.php";
if(!eregi("member_modify.php",$HTTP_REFERER)) Error("제대로 된 접근을 하여 주시기 바랍니다");
// DB 연결
if(!$connect) $connect=dbConn();
// 회원 정보를 얻어옴
$member=member_info();
$group_no = $member[group_no];
// 10등급의 탈퇴 막기
if($member[level] == 10) {
error("10등급 회원은 탈퇴 안됩니다.");
} else {
// 멤버 정보 10등급으로 처리
/*
@mysql_query("delete from $member_table where no='$member[no]'") or error(mysql_error());
*/
@mysql_query("update $member_table set level = '10' where no='$member[no]'") or error(mysql_error());
// 쪽지 테이블에서 멤버 정보 삭제 (사용 안함 주석처리)
/*
@mysql_query("delete from $get_memo_table where member_no='$member[no]'") or error(mysql_error());
@mysql_query("delete from $send_memo_table where member_no='$member[no]'") or error(mysql_error());
*/
// 각종 게시판에서 현재 탈퇴한 멤버의 모든 정보를 삭제 (부하 문제로 인해서 주석 처리)
/*
$result=mysql_query("select name from $admin_table");
while($data=mysql_fetch_array($result)) {
// 게시판 테이블에서 삭제
@mysql_query("update $t_board"."_$data[name] set ismember='0', password=password('".time()."') where ismember='$member[no]'") or error(mysql_error());
// 코멘트 테이블에서 삭제
@mysql_query("update $t_comment"."_$data[name] set ismember='0', password=password('".time()."') where ismember='$member[no]'") or error(mysql_error());
}
*/
// 그룹테이블에서 회원수 -1 (사용 안함 주석처리)
/*
@mysql_query("update $group_table set member_num=member_num-1 where no = '$group_no'") or error(mysql_error());
*/
// 회원 탈퇴 사실을 관리자에게 알림.
$masters=mysql_query("select * from $member_table where is_admin=1||(is_admin=2&&group_no='$group_no')",$connect);
$masters_num=mysql_affected_rows();
$reg_date=time();
$memo=$member[name]."(".$member[user_id].") 님께서 ".$group[name]."그룹에서 탈퇴했습니다. ".$member[level]."등급 이었습니다. ";
for($i=0;$i<$masters_num;$i++){
mysql_data_seek($masters,$i);
$master_info=mysql_fetch_array($masters);
mysql_query("insert into $get_memo_table (member_no,member_from,subject,memo,readed,reg_date) values ($master_info[no],1,'회원탈퇴 안내','$memo',1,'$reg_date')") or error(mysql_error());
mysql_query("update $member_table set new_memo=1 where no=$master_info[no]") or error(mysql_error());
}
// 로그아웃 시킴
destroyZBSessionID($member[no]);
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_no"]='';
//$HTTP_SESSION_VARS["zb_logged_id"]='';
//$HTTP_SESSION_VARS["zb_logged_time"]='';
//$HTTP_SESSION_VARS["zb_logged_ip"]='';
//$HTTP_SESSION_VARS["zb_secret"]='';
//$HTTP_SESSION_VARS["zb_last_connect_check"] = '0';
// 4.0x 용 세션 처리
$zb_logged_no='';
$zb_logged_time='';
$zb_logged_ip='';
$zb_secret='';
$zb_last_connect_check = '0';
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_secret");
session_register("zb_last_connect_check");
mysql_close($connect);
?>
<script>
alert("정상적으로 탈퇴 처리가 통보 되었습니다.");
opener.window.history.go(0);
window.close();
</script>
<? } ?>
# 영진님이 만드신것(레벨10 회원은 멘트와함께 로그인거절) #
login_check.php차일을 아래처럼 수정하세요.
// 회원로그인이 성공하였을 경우 세션을 생성하고 페이지를 이동함
if($member_data[no]) {
if($member_data[level]==10){
echo"<script>
alert('회원님은 아이디 이용정지입니다.');
history.back();</script>";exit;}
else{
if($auto_login) {
makeZBSessionID($member_data[no]);
}
}
// 4.0x 용 세션 처리
한글사랑님의 원본 : https://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=on&ss=off&sc=off&keyword=한글사랑&select_arrange=headnum&desc=asc&no=3411
영진님의 원본 : https://www.nzeo.com/bbs/zboard.php?id=cgi_qa2_new&page=1&sn1=&divpage=31&sn=on&ss=on&sc=off&keyword=비밀맨&select_arrange=headnum&desc=asc&no=173353
레벨 10에 대한 회원의 로그인 자체를 막는다는 내용입니다^^;
# 한글사랑님이 만드신것(회원 탈퇴요청서 DB삭제않고, 레벨10으로 만들기) #
회원 자의에 의해 탈퇴를 하여야 하나, 필요한 분이 있을수 있어 올립니다.
수정할 소스는 member_out.php 입니다.
우선적으로 기본 사용(글쓰기,코맨트등)을 9등급 처리한 상태에서 10등급은 이용이 안되게 하면 좋겠네요.
원본 소스는 그냥 주석 처리만 했습니다..
주석 보시면 이해가 가리라 생각 합니다.
<?
// 라이브러리 함수 파일 인크루드
include "lib.php";
if(!eregi("member_modify.php",$HTTP_REFERER)) Error("제대로 된 접근을 하여 주시기 바랍니다");
// DB 연결
if(!$connect) $connect=dbConn();
// 회원 정보를 얻어옴
$member=member_info();
$group_no = $member[group_no];
// 10등급의 탈퇴 막기
if($member[level] == 10) {
error("10등급 회원은 탈퇴 안됩니다.");
} else {
// 멤버 정보 10등급으로 처리
/*
@mysql_query("delete from $member_table where no='$member[no]'") or error(mysql_error());
*/
@mysql_query("update $member_table set level = '10' where no='$member[no]'") or error(mysql_error());
// 쪽지 테이블에서 멤버 정보 삭제 (사용 안함 주석처리)
/*
@mysql_query("delete from $get_memo_table where member_no='$member[no]'") or error(mysql_error());
@mysql_query("delete from $send_memo_table where member_no='$member[no]'") or error(mysql_error());
*/
// 각종 게시판에서 현재 탈퇴한 멤버의 모든 정보를 삭제 (부하 문제로 인해서 주석 처리)
/*
$result=mysql_query("select name from $admin_table");
while($data=mysql_fetch_array($result)) {
// 게시판 테이블에서 삭제
@mysql_query("update $t_board"."_$data[name] set ismember='0', password=password('".time()."') where ismember='$member[no]'") or error(mysql_error());
// 코멘트 테이블에서 삭제
@mysql_query("update $t_comment"."_$data[name] set ismember='0', password=password('".time()."') where ismember='$member[no]'") or error(mysql_error());
}
*/
// 그룹테이블에서 회원수 -1 (사용 안함 주석처리)
/*
@mysql_query("update $group_table set member_num=member_num-1 where no = '$group_no'") or error(mysql_error());
*/
// 회원 탈퇴 사실을 관리자에게 알림.
$masters=mysql_query("select * from $member_table where is_admin=1||(is_admin=2&&group_no='$group_no')",$connect);
$masters_num=mysql_affected_rows();
$reg_date=time();
$memo=$member[name]."(".$member[user_id].") 님께서 ".$group[name]."그룹에서 탈퇴했습니다. ".$member[level]."등급 이었습니다. ";
for($i=0;$i<$masters_num;$i++){
mysql_data_seek($masters,$i);
$master_info=mysql_fetch_array($masters);
mysql_query("insert into $get_memo_table (member_no,member_from,subject,memo,readed,reg_date) values ($master_info[no],1,'회원탈퇴 안내','$memo',1,'$reg_date')") or error(mysql_error());
mysql_query("update $member_table set new_memo=1 where no=$master_info[no]") or error(mysql_error());
}
// 로그아웃 시킴
destroyZBSessionID($member[no]);
// 기존 세션 처리 (4.0x용 세션 처리로 인하여 주석 처리)
//$HTTP_SESSION_VARS["zb_logged_no"]='';
//$HTTP_SESSION_VARS["zb_logged_id"]='';
//$HTTP_SESSION_VARS["zb_logged_time"]='';
//$HTTP_SESSION_VARS["zb_logged_ip"]='';
//$HTTP_SESSION_VARS["zb_secret"]='';
//$HTTP_SESSION_VARS["zb_last_connect_check"] = '0';
// 4.0x 용 세션 처리
$zb_logged_no='';
$zb_logged_time='';
$zb_logged_ip='';
$zb_secret='';
$zb_last_connect_check = '0';
session_register("zb_logged_no");
session_register("zb_logged_time");
session_register("zb_logged_ip");
session_register("zb_secret");
session_register("zb_last_connect_check");
mysql_close($connect);
?>
<script>
alert("정상적으로 탈퇴 처리가 통보 되었습니다.");
opener.window.history.go(0);
window.close();
</script>
<? } ?>
# 영진님이 만드신것(레벨10 회원은 멘트와함께 로그인거절) #
login_check.php차일을 아래처럼 수정하세요.
// 회원로그인이 성공하였을 경우 세션을 생성하고 페이지를 이동함
if($member_data[no]) {
if($member_data[level]==10){
echo"<script>
alert('회원님은 아이디 이용정지입니다.');
history.back();</script>";exit;}
else{
if($auto_login) {
makeZBSessionID($member_data[no]);
}
}
// 4.0x 용 세션 처리
한글사랑님의 원본 : https://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=on&ss=off&sc=off&keyword=한글사랑&select_arrange=headnum&desc=asc&no=3411
영진님의 원본 : https://www.nzeo.com/bbs/zboard.php?id=cgi_qa2_new&page=1&sn1=&divpage=31&sn=on&ss=on&sc=off&keyword=비밀맨&select_arrange=headnum&desc=asc&no=173353