소스코드한번만봐주세요, 회원권한이 1로 자동으로 떨어집니다 ㅠ_ㅠ 채택완료
메시아나
11년 전
조회 6,564

어째저째 수정해서 지금은, 포인트에 맞는 레벨이 표시되고 있습니다. 경험치바도 잘 적용 되었구요.
그런데, 회원권한이 문제입니다. 처음, 회원레벨이 2일때는 상단에도 2 , 레벨도 2로 표시됩니다.
물론 레벨 4가되면 , 상단에도 레벨 4 정상적으로 표시됩니다.
그러나 이땐, 알지못했습니다. 회원권한이, 변경되더라구요... 2일땐 회원권한도 2...
레벨 10이 넘어가면 회원권한 1이 됩니다.. 그이후로 쭉 1이구요
제가 하고자 하는것은, 레벨올라가고, 경험치 바가 게산해주는건 좋은데 전적으로, 회원권한과는
무관하게 운영하고 싶습니다.
부디, 도움부탁드립니다. ㅠ_ㅠ;
경험치 내역은 제거 봐주시는데 불편함이 많을거같아서... 좀 줄였습니다.
너무 초보라 .. 회원들 원성만 사고 있는중이네요 ㅠㅠ;;
</p><p align="left" style="text-align: left;"><?</p><p align="left">if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가</p><p align="left">?></p><p align="left"> </p><p align="left"><!-- tool tip --></p><p align="left"><script type="text/javascript" src="<?=$outlogin_skin_path?>\wz_tooltip.js"></script></p><p align="left"> </p><p align="left"><? // 자동레벨업/다운 및 경험치바 적용</p><p align="left">$point_level = array(); // 레벨별 포인트값을 저장할 배열변수 선언</p><p align="left">##################################################################################################</p><p align="left"># 편리한 사용을 위한 설정 모음 #</p><p align="left">##################################################################################################</p><p align="left"> </p><p align="left">// 최고레벨 설정 (주의 : admin 레벨은 절대 포함하지마세요!)</p><p align="left">$max_level = 100;</p><p align="left"> </p><p align="left">// 레벨당 획득 경험치가 일정한 경우 true 아닌경우 false</p><p align="left">$lv_point = false;</p><p align="left"> </p><p align="left">// 1레벨당 최고 포인트 증가량 일정치</p><p align="left">$lvup_point = 200;</p><p align="left"> </p><p align="left">// 포인트 증가값이 일정치 않을 경우 하단과 같이 따로 설정</p><p align="left">// $max_level 에 설정한 갯수 만큼 설정</p><p align="left">$point_level[1] = 10000;</p><p align="left">$point_level[2] = 30000;</p><p align="left">$point_level[3] = 70000;</p><p align="left">$point_level[4] = 130000;</p><p align="left">$point_level[5] = 210000;</p><p align="left">$point_level[6] = 310000;</p><p align="left">$point_level[7] = 430000;</p><p align="left">$point_level[8] = 570000;</p><p align="left">$point_level[9] = 730000;</p><p align="left">$point_level[10] = 910000;</p><p align="left">$point_level[11] = 1110000;</p><p align="left">$point_level[12] = 1330000;</p><p align="left">//이하 줄임</p><p align="left">$point_level[96] = 91210000;</p><p align="left">$point_level[97] = 93130000;</p><p align="left">$point_level[98] = 95070000;</p><p align="left">$point_level[99] = 99990000;</p><p align="left">$point_level[100] = 100000000;</p><p align="left"> </p><p align="left">// 경험치량 표시할 소수점 자리수 설정</p><p align="left">$decimal = 0;</p><p align="left"> </p><p align="left">/*********************************************************/</p><p align="left">// 경험치바 색상 설정</p><p align="left">$expbar_border<span class="Apple-tab-span" style="white-space: pre;"> </span>= "#2f4f4f"; // 테두리색</p><p align="left">$expbar_bg<span class="Apple-tab-span" style="white-space: pre;"> </span>= "#ccddee"; // 배경색</p><p align="left">$expbar_light<span class="Apple-tab-span" style="white-space: pre;"> </span>= "#75a6fe"; // 경험치바 밝은색</p><p align="left">$expbar_dark<span class="Apple-tab-span" style="white-space: pre;"> </span>= "#5384dc"; // 경험치바 어두운색</p><p align="left">/*********************************************************/</p><p align="left"> </p><p align="left">##################################################################################################</p><p align="left"># 편리한 사용을 위한 설정 모음 끝 #</p><p align="left">##################################################################################################</p><p align="left">?></p><p align="left"> </p><p align="left"><!-- 레벨업 메세지 --></p><p align="left"><script language="JavaScript"></p><p align="left">function level_up(level){</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 레벨 업시 메세지</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>alert("Lv."+level+"(으)로 레벨업! 축하합니다.");</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>window.location.reload();</p><p align="left">}</p><p align="left"> </p><p align="left">function level_down(level){</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 레벨 다운시 메세지</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>alert("Lv."+level+"(으)로 레벨다운;;");</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>window.location.reload();</p><p align="left">}</p><p align="left"></script></p><p align="left"> </p><p align="left"><?</p><p align="left"> </p><p align="left">if (!$is_admin){ // 최고관리자는 체크하지 않음</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$exp = 0; // 경험치를 저장할 변수 초기화</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 레벨별 최고 경험치 설정</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>if ($lv_point){</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>for ($i = 0;$i < $max_level;$i++){</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$point_level[$i+1] = $point_level[$i] + $lvup_point; // 1레벨당 lvup_point만큼 point씩 증가</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 최대 포인트 설정 (최대 포인트 이상 포인트가 넘어갈시 경험치바 오류방지)</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$max_point = $point_level[$max_level];</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 현재 point 를 체크하여 자동 레벨업 시킴</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>/*</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span> 자신의 현재레벨 max point와 비교하여 현재 point가 현재레벨 max point 보다 높거나</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span> 이전레벨 max point와 비교하여 현재 point가 이전레벨 max point 보다 낮고</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span> 최고 레벨이 아닌경우에만 레벨업(다운) 적용</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>*/</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>if (($point_level[$member[mb_level]] < $member[mb_point] ||</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span> $point_level[$member[mb_level]-1] > $member[mb_point]) &&</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span> $member[mb_level]!=$max_level){</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$now_level = $member[mb_level]; // 현재 포인트에 해당하는 레벨을 저장할 변수 현재 레벨로 초기화</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>for($i=0;$i < $max_level;$i++){ // 현재 포인트에 해당하는 레벨 구하기</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>if ($member[mb_point] < $point_level[$i+1]){</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$now_level = $i+1;</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>break;</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>if ($member[mb_point] > $point_level[$max_level]){ // 현재 포인트가 max level point 보다 높다면 최고레벨로 지정</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$now_level = $max_level;</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 회원레벨 업데이트</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$sql = " update $g4[member_table] set mb_level = '$now_level' where mb_id = '$member[mb_id]' ";</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>sql_query($sql);</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>if ($member[mb_level] < $now_level){ //레벨이 올랐을때</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>echo "<script language='JavaScript'>level_up(".$now_level.");</script>";</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>} else { // 레벨이 떨어졌을때</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>echo "<script language='JavaScript'>level_down(".$now_level.");</script>";</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 레벨이 존재하지 않을 경우 오류 출력</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>//if (!$member[mb_level]) alert("정상적으로 접근하여 주시기 바랍니다.");</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 현재 레벨에 얻어야할 max point / 현재까지 획득한 point 계산</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>if ($member[mb_level]!= "1"){ // 1레벨일경우 이전 레벨이 없기 때문에 현재 포인트로 계산</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$max_exp = $point_level[$member[mb_level]]-$point_level[$member[mb_level]-1]; // max point</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$acquire_point = $member[mb_point] - $point_level[$member[mb_level]-1]; // 획득 point</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>} else { // 1레벨일 경우 처리</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$max_exp = $point_level[1];</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$acquire_point = $member[mb_point];</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>if ($max_point<$member[mb_point]){ //</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$max_exp = $max_point;</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$acquire_point = $member[mb_point];</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>}</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 현재 경험치 계산 %(퍼센트)로 계산</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$exp = number_format($acquire_point / $max_exp * 100,$decimal);</p><p align="left"> </p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>// 경험치바 크기 조정 (100%가 넘을시에는 %는 그대로 출력 게이지바는 100%로 고정</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>if($exp>100) $exp_bar = 100;</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>else $exp_bar = $exp;</p><p align="left">}</p><p align="left">?></p><p align="left"> </p><p align="left"><!-- 로그인 후 외부로그인 시작 --></p><p align="left"><table width="220" border="0" cellspacing="0" cellpadding="0"></p><p align="left"> </p><p align="left"><tr> </p><p align="left"> <td colspan="5"></p><p align="left"> <table width="210" height="27" border="0" cellpadding="0" cellspacing="0"></p><p align="left"> <tr> </p><p align="left"> <td width="25" height="27"align=right></td></p><p align="left"> <td width="139" height="27" align=center ><?=$mb_name?> <?=level_icon($member[mb_id])?> <span class='member'><strong><?=$nick?></strong></span>님</td></p><p align="left"> <td width="46" height="27"><? if ($is_admin == "super" || $is_auth) { ?><a href="<?=$g4['admin_path']?>/"><img src="<?=$outlogin_skin_path?>/img/admin.gif" width="33" height="15" border="0" align="absmiddle"></a><? } ?></td></p><p align="left"> </tr></p><p align="left"> </table></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span></td></p><p align="left"></tr></p><p align="left"><tr> </p><p align="left"> <td width="15"></td></p><p align="left"> <td width="160" height="25" align="center" bgcolor="#F9F9F9"><a href="javascript:win_point();"><font color="#737373">Lv.<?=$member[mb_level]?> ( 포인트 : <?=$point?>점)</font></a></td></p><p align="left"> <td width="15"></td></p><p align="left"></tr></p><p align="left"><tr> </p><p align="left"> <td colspan="3" height="25" align="center" align="center"></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><!-- 경험치 bar 시작 --></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><table border="0" cellpadding="0" cellspacing="0"></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><tr></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><td style="padding: 0 5 0 0;"><b>Exp.</b></td></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><td></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><? // tooltip에 나오는 내용</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>$tooltip_text = "<center>".$exp."%
".$member[mb_point]." / ".$point_level[$member[mb_level]]."</center>";</p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span>?></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><div style="position:relative;border:1px solid;border-color:<?=$expbar_border?>;height:8px;width:100px;background-color:<?=$expbar_bg?>;font-size:1px;" align="left" onmouseover="Tip('<?=$tooltip_text?>')" onmouseout="UnTip()"></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><div style="font-size:1px;background-color:<?=$expbar_light?>;width:<?=$exp_bar?>%;height:2px;"></div></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><div style="font-size:1px;background-color:<?=$expbar_dark?>;width:<?=$exp_bar?>%;height:6px;"></div></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span></div></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span></td></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span></tr></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span></table></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span><!-- 경험치 bar 끝 --></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span></td></p><p align="left"></tr></p><p align="left"><tr> </p><p align="left"> <td colspan="3"></p><p align="left"> <table width="210" border="0" cellspacing="0" cellpadding="0"></p><p align="left"> <tr> </p><p align="left"> <td></p><p align="left"> <table width="210" height="50" border="0" cellpadding="0" cellspacing="0"></p><p align="left"> <tr> </p><p align="left"> <td width="15"></td></p><p align="left"> <td width="82"><a href="<?=$g4['bbs_path']?>/logout.php"><img src="<?=$outlogin_skin_path?>/img/logout_button.gif" width="78" height="20" border="0"></a></td></p><p align="left"> <td width="78"><a href="<?=$g4['bbs_path']?>/member_confirm.php?url=register_form.php"><img src="<?=$outlogin_skin_path?>/img/login_modify.gif" width="78" height="20" border="0"></a></td></p><p align="left"> <td width="15"></td></p><p align="left"> </tr></p><p align="left"> <tr> </p><p align="left"> <td></td></p><p align="left"> <td align="center"><a href="javascript:win_memo();"><FONT color="#ff8871;"><B>쪽지 (<?=$memo_not_read?>)</B></FONT></a></td></p><p align="left"> <td><a href="javascript:win_scrap();"><img src="<?=$outlogin_skin_path?>/img/scrap_button.gif" width="78" height="20" border="0"></a></td></p><p align="left"> <td></td></p><p align="left"> </tr></p><p align="left"> </table></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span></td></p><p align="left"> </tr></p><p align="left"> </table></p><p align="left"><span class="Apple-tab-span" style="white-space: pre;"> </span></td></p><p align="left"></tr></p><p align="left"> </p><p align="left"></table></p><p align="left"> </p><p align="left"><script language="JavaScript"></p><p align="left">// 탈퇴의 경우 아래 코드를 연동하시면 됩니다.</p><p align="left">function member_leave() </p><p align="left">{</p><p align="left"> if (confirm("정말 회원에서 탈퇴 하시겠습니까?")) </p><p align="left"> location.href = "<?=$g4['bbs_path']?>/member_confirm.php?url=member_leave.php";</p><p align="left">}</p><p align="left"></script></p><p align="left"><!-- 로그인 후 외부로그인 끝 --></p><p align="left" style="text-align: left;"><span id="husky_bookmark_end_1405276450223"></span> </p><p align="left" style="text-align: left;">
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
11년 전
지금 레벨이랑 권한을 따로 두고 싶다고 하셧는데 사용하시는 db가 같은 mb_level 이라서 권한이랑 별개로 하고 싶으시면 레벨 필드를 따로 잡아주셔야 할것 같습니다.
지금 mb_level로 잡으신걸 새로 필드를 생성해서 그걸로 다 수정하시거나 여분필드인 mb1~mb10까지 사용하셔서 그걸로 다 바꾸시던지요 ㅎ
로그인 후 평가할 수 있습니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인