자동 회원 레벨 질문 있습니다. 정보
자동 회원 레벨 질문 있습니다.본문
아웃로그인 자동회원레벨업 소스인데요.
아래 내용중에 관리자는 레벨을 체크하지 않는다라고 되어 있는데;
제가 일반회원 기업회원으로 구분하려고 합니다만
기업회원을 74레벨로 두고 회원레벨을 체크하지 않으려고 하는데 어디를 손봐야 할지 모르겠습니다.
수고스럽겠지만 고수님들에게 도움을 요청드립니다 ㅠ
=======================================================
!-- 레벨업 메세지 -->
<script language="JavaScript">
function level_up(level){
alert("Lv."+level+"(으)로 레벨업! 축하합니다.");
window.location.reload();
}
function level_down(level){
alert("Lv."+level+"(으)로 레벨다운;;");
window.location.reload();
}
</script>
<? // 자동레벨업/다운 및 경험치바 적용
if (!$is_admin){ // 최고관리자는 체크하지 않음
$exp = 0; // 경험치를 저장할 변수 초기화
// 레벨별 포인트 설정 (point max 값)
$point_level = array(); // 레벨별 포인트값을 저장할 배열변수 선언
$max_level = 9; // 최고레벨 설정 (주의 : admin 레벨은 절대 포함하지마세요!)
$max_point = 1800; // 최대 포인트 설정 (최대 포인트 이상 포인트가 넘어갈시 경험치바 오류방지
$point_level[1] = 2;
$point_level[74] = 1000000;
// 현재 point 를 체크하여 자동 레벨업 시킴
/*
자신의 현재레벨 max point와 비교하여 현재 point가 현재레벨 max point 보다 높거나
이전레벨 max point와 비교하여 현재 point가 이전레벨 max point 보다 낮고
최고 레벨이 아닌경우에만 레벨업(다운) 적용
*/
if (($point_level[$member[mb_level]] < $member[mb_point] ||
$point_level[$member[mb_level]-1] > $member[mb_point]) &&
$member[mb_level]!=$max_level){
$now_level = $member[mb_level]; // 현재 포인트에 해당하는 레벨을 저장할 변수 현재 레벨로 초기화
for($i=0;$i < $max_level;$i++){ // 현재 포인트에 해당하는 레벨 구하기
if ($member[mb_point] < $point_level[$i+1]){
$now_level = $i+1;
break;
}
}
if ($member[mb_point] > $point_level[$max_level]){ // 현재 포인트가 max level point 보다 높다면 최고레벨로 지정
$now_level = $max_level;
}
// 회원레벨 업데이트
$sql = " update $g4[member_table] set mb_level = '$now_level' where mb_id = '$member[mb_id]' ";
sql_query($sql);
if ($member[mb_level] < $now_level){ //레벨이 올랐을때
echo "<script language='JavaScript'>level_up(".$now_level.");</script>";
} else { // 레벨이 떨어졌을때
echo "<script language='JavaScript'>level_down(".$now_level.");</script>";
}
}
// 레벨이 존재하지 않을 경우 오류 출력
//if (!$member[mb_level]) alert("정상적으로 접근하여 주시기 바랍니다.");
// 현재 레벨에 얻어야할 max point / 현재까지 획득한 point 계산
if ($member[mb_level]!= "1"){ // 1레벨일경우 이전 레벨이 없기 때문에 현재 포인트로 계산
$max_exp = $point_level[$member[mb_level]]-$point_level[$member[mb_level]-1]; // max point
$acquire_point = $member[mb_point] - $point_level[$member[mb_level]-1]; // 획득 point
} else { // 1레벨일 경우 처리
$max_exp = $point_level[1];
$acquire_point = $member[mb_point];
}
if ($max_point<$member[mb_point]){ //
$max_exp = $member[mb_point];
$acquire_point = $member[mb_point];
}
// 현재 경험치 계산 %(퍼센트)로 계산
$exp = number_format($acquire_point / $max_exp * 100,2);
}
?>
=================================================================
아래 내용중에 관리자는 레벨을 체크하지 않는다라고 되어 있는데;
제가 일반회원 기업회원으로 구분하려고 합니다만
기업회원을 74레벨로 두고 회원레벨을 체크하지 않으려고 하는데 어디를 손봐야 할지 모르겠습니다.
수고스럽겠지만 고수님들에게 도움을 요청드립니다 ㅠ
=======================================================
!-- 레벨업 메세지 -->
<script language="JavaScript">
function level_up(level){
alert("Lv."+level+"(으)로 레벨업! 축하합니다.");
window.location.reload();
}
function level_down(level){
alert("Lv."+level+"(으)로 레벨다운;;");
window.location.reload();
}
</script>
<? // 자동레벨업/다운 및 경험치바 적용
if (!$is_admin){ // 최고관리자는 체크하지 않음
$exp = 0; // 경험치를 저장할 변수 초기화
// 레벨별 포인트 설정 (point max 값)
$point_level = array(); // 레벨별 포인트값을 저장할 배열변수 선언
$max_level = 9; // 최고레벨 설정 (주의 : admin 레벨은 절대 포함하지마세요!)
$max_point = 1800; // 최대 포인트 설정 (최대 포인트 이상 포인트가 넘어갈시 경험치바 오류방지
$point_level[1] = 2;
$point_level[74] = 1000000;
// 현재 point 를 체크하여 자동 레벨업 시킴
/*
자신의 현재레벨 max point와 비교하여 현재 point가 현재레벨 max point 보다 높거나
이전레벨 max point와 비교하여 현재 point가 이전레벨 max point 보다 낮고
최고 레벨이 아닌경우에만 레벨업(다운) 적용
*/
if (($point_level[$member[mb_level]] < $member[mb_point] ||
$point_level[$member[mb_level]-1] > $member[mb_point]) &&
$member[mb_level]!=$max_level){
$now_level = $member[mb_level]; // 현재 포인트에 해당하는 레벨을 저장할 변수 현재 레벨로 초기화
for($i=0;$i < $max_level;$i++){ // 현재 포인트에 해당하는 레벨 구하기
if ($member[mb_point] < $point_level[$i+1]){
$now_level = $i+1;
break;
}
}
if ($member[mb_point] > $point_level[$max_level]){ // 현재 포인트가 max level point 보다 높다면 최고레벨로 지정
$now_level = $max_level;
}
// 회원레벨 업데이트
$sql = " update $g4[member_table] set mb_level = '$now_level' where mb_id = '$member[mb_id]' ";
sql_query($sql);
if ($member[mb_level] < $now_level){ //레벨이 올랐을때
echo "<script language='JavaScript'>level_up(".$now_level.");</script>";
} else { // 레벨이 떨어졌을때
echo "<script language='JavaScript'>level_down(".$now_level.");</script>";
}
}
// 레벨이 존재하지 않을 경우 오류 출력
//if (!$member[mb_level]) alert("정상적으로 접근하여 주시기 바랍니다.");
// 현재 레벨에 얻어야할 max point / 현재까지 획득한 point 계산
if ($member[mb_level]!= "1"){ // 1레벨일경우 이전 레벨이 없기 때문에 현재 포인트로 계산
$max_exp = $point_level[$member[mb_level]]-$point_level[$member[mb_level]-1]; // max point
$acquire_point = $member[mb_point] - $point_level[$member[mb_level]-1]; // 획득 point
} else { // 1레벨일 경우 처리
$max_exp = $point_level[1];
$acquire_point = $member[mb_point];
}
if ($max_point<$member[mb_point]){ //
$max_exp = $member[mb_point];
$acquire_point = $member[mb_point];
}
// 현재 경험치 계산 %(퍼센트)로 계산
$exp = number_format($acquire_point / $max_exp * 100,2);
}
?>
=================================================================
댓글 전체

if (!$is_admin){ // 최고관리자는 체크하지 않음
위 구문에 다른과 같이 추가해주세요..
if (!$is_admin or $member[mb_level]=='74'){ // 최고관리자는 체크하지 않음
제일 처음의 if문에 의해서 관리자는 제외처리를 하게 되는데...
해당 부분에 or을 사용해서 '관리자일 경우'나 '맴버 레벨이 74'일 경우 해당 if블록 내의 구문들은
실행되지 않습니다. ㅅㄱ
위 구문에 다른과 같이 추가해주세요..
if (!$is_admin or $member[mb_level]=='74'){ // 최고관리자는 체크하지 않음
제일 처음의 if문에 의해서 관리자는 제외처리를 하게 되는데...
해당 부분에 or을 사용해서 '관리자일 경우'나 '맴버 레벨이 74'일 경우 해당 if블록 내의 구문들은
실행되지 않습니다. ㅅㄱ
이거 제가 만든 스킨이네요; 스킨에 댓글 다셨으면 바로 알려드릴텐데 ㅎㅎ
위에 kalcapt 님의 말씀이 맞는데요 한가지 잘못된점은
if (!$is_admin || $member[mb_level]=='74'){ // 최고관리자는 체크하지 않음
이게 아니고
if (!$is_admin && $member[mb_level]!='74'){ // 최고관리자는 체크하지 않음
이렇게 되어야 합니다.
제가 코딩할때 관리자가 아닐때 하단내용을 실행하게 만든건데
관리자가 아니고 맴버레벨이 74가 아닐경우에만 레벨업 체크를 하실경우에는
$member[mb_level]!='74'
이렇게 해주셔야 74레벨이 아닐경우가 됩니다~
kalcapt 님이 잠시 내용이 헷깔리신듯 ㅎ
위에 kalcapt 님의 말씀이 맞는데요 한가지 잘못된점은
if (!$is_admin || $member[mb_level]=='74'){ // 최고관리자는 체크하지 않음
이게 아니고
if (!$is_admin && $member[mb_level]!='74'){ // 최고관리자는 체크하지 않음
이렇게 되어야 합니다.
제가 코딩할때 관리자가 아닐때 하단내용을 실행하게 만든건데
관리자가 아니고 맴버레벨이 74가 아닐경우에만 레벨업 체크를 하실경우에는
$member[mb_level]!='74'
이렇게 해주셔야 74레벨이 아닐경우가 됩니다~
kalcapt 님이 잠시 내용이 헷깔리신듯 ㅎ
아 그리고 위에 소스를 보니 수정을 하신거 같은데 수정이 잘못되어져 있네요;;;
그리고 위에 소스를 보니 제가 처음 작업해서 올려놓은걸 받으신거 같은데
사용법이 어려운거 같아서 좀더 쉽게 만들어서 다시 올려 놓았으니 다시 받으셔서
위에 설정부분만 바꾸셔서 사용해보세요~
그리고 위에 소스를 보니 제가 처음 작업해서 올려놓은걸 받으신거 같은데
사용법이 어려운거 같아서 좀더 쉽게 만들어서 다시 올려 놓았으니 다시 받으셔서
위에 설정부분만 바꾸셔서 사용해보세요~

아~ 죄송합니다 ..-_-;;
아침에 출근하자마자 컴터켜고 들왔는데 몽롱한 상태여서 착각을...켁;;
이런 간단한 부분에서 논리적 오류를 범하다니...ㅠㅠ
그래도 바로잡아주셔서 다행이네요^^ 감사합니다~
아.. 일욜에도 출근하는..ㅠ
아침에 출근하자마자 컴터켜고 들왔는데 몽롱한 상태여서 착각을...켁;;
이런 간단한 부분에서 논리적 오류를 범하다니...ㅠㅠ
그래도 바로잡아주셔서 다행이네요^^ 감사합니다~
아.. 일욜에도 출근하는..ㅠ
^^ comet님 소스를 제가 기존에 사용하던 로그인에 붙여봤습니다 ㅎ;;
아구 새로운 버전이 있었네여~ 두분 모두 감사드립니다. ^^
함번 적용해 보겠습니다 고맙습니다^^
아구 새로운 버전이 있었네여~ 두분 모두 감사드립니다. ^^
함번 적용해 보겠습니다 고맙습니다^^