회원정보수정시 등급상향설정? > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

회원정보수정시 등급상향설정? 정보

회원정보수정시 등급상향설정?

본문

안녕하세요.
 
저는 최근 회원제를 보강하려고 합니다.
그래서 모든 게시판의 글쓰기권한등급을 한단계상향조정했습니다.
 
그동안 회원가입시 실명과 이메일주소만 받았는데
이제 몇가지 더 받으려고 합니다.
그래서 좀더 엄격한 회원가입절차를 통과한 신입회원은 한등급 높은 등급을 부여했습니다.
 
그런데 문제는 과거회원입니다. 과거회원이 회원정보수정을 하도록 하고
정보를 수정했을 때 자동으로 회원등급을 상향조정시켜주고 싶습니다.
 
현재 회원가입시에는 회원등급을 설정할수 있도록 되어 있으나
회원정보수정시에는 등급설정기능이 없어서 이렇게 도움을 청합니다.
 
어떻게 하면 되겠습니까?
 
읽어주셔서 감사합니다.
 
 
  • 복사

댓글 전체

skin/member/basic/register_form.skin.php 의 114라인 에 붙여 넣으십시요.


<TR bgcolor="#FFFFFF">
  <TD width="160" class=m_title>이름</TD>
  <TD class=m_padding>
  <!-- 한글만 입력받을 경우 <INPUT name=mb_name itemname="이름" required minlength="2" nospace hangul value="<?=$member[mb_name]?>" <?=$member[mb_name]?"readonly class=m_text2":"class=m_text";?>> -->
  <INPUT name=mb_name itemname="이름" required minlength="2" nospace value="<?=$member[mb_name]?>" <?=$member[mb_name]?"readonly class=m_text2":"class=m_text";?>>


  <?
  ##########################################################
  # 회원의 특정 필드가 U1 이 아닐때만 회원 등급을 1단계 올립니다.
  # 114라인 skin/member/basic/register_form.skin.php 의 114라인 에 붙여 넣으십시요.
  ##########################################################
  // 회원권한을 SELECT 형식으로 얻음
  // adm/admin.lib.php 파일에 있는 함수임.
  function get_member_level_select($name, $start_id=0, $end_id=10, $selected='', $event='')
  {
  global $g4;
  $str = "<select name='$name' $event>";
  for ($i=$start_id; $i<=$end_id; $i++)
    {
    $str .= "<option value='$i'";
      if($i == $selected)
$str .= " selected";
  $str .= ">$i</option>";
}
$str .= "</select>";
return $str;
    }
  ?>

  <?
  if(!$is_admin == 'super'|| !$is_admin == 'group')
  {##########################################################  
  echo"<b>&nbsp;현재레벨:<font color='blue'> {$member[mb_level]}</font> 입니다.</b><br>";
  if($member[mb_10] =="U1"){
  echo"<font color='green'><b>※ 이미 1단계 상향되셨습니다.</b></font><br>";
  echo"<input type=hidden name=mb_10 itemname='업데이트' value='{$member[mb_10]}'>";
  }
  if($member[mb_10] !="U1"){
  echo"<font color='red'><b>※ 회원 수정시 1단계 등급이 상향조정됩니다.</b></font><br>";
  $up_level=$member[mb_level];
  $up_level=$up_level+1;
  ?>
  <?=get_member_level_select("mb_level",$up_level,$up_level,$up_level);?>
  <input type=hidden name=mb_10 itemname="업데이트" value="U1">
  <?}//업데이트가 안되었으면  
  ######################################  2006.07.14 dalsoo ######
  }//관리자가 아니면 
  ?>
 </TD>
</TR>
신이z님, 오달수님 도움말을 주셔서 감사합니다. 오달수님의 드높은 내공은 익히 알고 있거니와 님의 처방을 쓰게 되어 영광입니다. 그런데 오달수님의 처방을 시행해 본 결과 약간 손볼 구석이 있지 않나 싶습니다. 회원정보수정후 실제 등급이 업데이트되지 않으면서 업데이트되었다고 나오거든요. 두번째로 회원정보수정을 시도하면 이미 등급이 상향조정되었다고 나옵니다. 이 부분은 매우 만족스럽고 전체적인 로직은 훌륭하게 작동하는 것같습니다. 단지 등급이 실제 상향조정되지 않는 것만 빼고는요.
이런...
처음만 읽고...잘되는 줄로만 착각을 -.-;;;
뭔 리플이 늘어서 보았더니..
죄송하게 되었습니다.
관리자만 레벨업을 하게되어서 그 부분이 빠졌군요.

이렇게 해주시고

(중략)
.
.

<?
 if(!$is_admin == 'super'|| !$is_admin == 'group')
 {##########################################################  
  echo"<b>&nbsp;현재레벨:<font color='blue'> {$member[mb_level]}</font> 입니다.</b><br>";
  if($member[mb_10] =="U1"){
    echo"<font color='green'><b>※ 이미 1단계 상향되셨습니다.</b></font><br>";
    echo"<input type=hidden name=mb_10 itemname='업데이트' value='{$member[mb_10]}'>";
    echo"<input type=hidden name=mb_level itemname='업데이트' value='{$member[mb_level]}'>";
    }
    if($member[mb_10] !="U1"){
    echo"<font color='red'><b>※ 회원 수정시 1단계 등급이 상향조정됩니다.</b></font><br>";
    $up_level=$member[mb_level];
    $up_level=$up_level+1;
    ?>
  <?=get_member_level_select("mb_level",$up_level,$up_level,$up_level);?>
  <input type=hidden name=mb_10 itemname="업데이트" value="U1">
  <?}//업데이트가 안되었으면  
  ######################################  2006.07.14 dalsoo ######
  }//관리자가 아니면 
    //※ register_update.skin.php 에서 업데이트가 이루어짐.
 ?>
</TD>
</TR>







register_update.skin.php 에 아래 두줄을 써주시면 될것입니다.


/* 특정필드 wr_10 이U1 아닐때 일때 1레벨업수정*/
$sql2 = " update $g4[member_table] set mb_level = '$mb_level' where mb_id= '$member[mb_id]'";
sql_query($sql2);
© SIRSOFT
현재 페이지 제일 처음으로