회원정보수정시 등급상향설정? 정보
회원정보수정시 등급상향설정?본문
안녕하세요.
저는 최근 회원제를 보강하려고 합니다.
그래서 모든 게시판의 글쓰기권한등급을 한단계상향조정했습니다.
그동안 회원가입시 실명과 이메일주소만 받았는데
이제 몇가지 더 받으려고 합니다.
그래서 좀더 엄격한 회원가입절차를 통과한 신입회원은 한등급 높은 등급을 부여했습니다.
그런데 문제는 과거회원입니다. 과거회원이 회원정보수정을 하도록 하고
정보를 수정했을 때 자동으로 회원등급을 상향조정시켜주고 싶습니다.
현재 회원가입시에는 회원등급을 설정할수 있도록 되어 있으나
회원정보수정시에는 등급설정기능이 없어서 이렇게 도움을 청합니다.
어떻게 하면 되겠습니까?
읽어주셔서 감사합니다.
댓글 전체
아무래도 스킨에서 수정을 하셔야 할듯 싶네요
저 같은 경우는 register_update.skin.php 에서
회원정보 수정일때 조건이 맞으면
쿼리로 직접 업데이트 하는 방법을 씁니다.
회원정보 수정일때 조건이 맞으면
쿼리로 직접 업데이트 하는 방법을 씁니다.
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> 현재레벨:<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>
<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> 현재레벨:<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님, 오달수님 도움말을 주셔서 감사합니다. 오달수님의 드높은 내공은 익히 알고 있거니와 님의 처방을 쓰게 되어 영광입니다. 그런데 오달수님의 처방을 시행해 본 결과 약간 손볼 구석이 있지 않나 싶습니다. 회원정보수정후 실제 등급이 업데이트되지 않으면서 업데이트되었다고 나오거든요. 두번째로 회원정보수정을 시도하면 이미 등급이 상향조정되었다고 나옵니다. 이 부분은 매우 만족스럽고 전체적인 로직은 훌륭하게 작동하는 것같습니다. 단지 등급이 실제 상향조정되지 않는 것만 빼고는요.
저도 테스트 해보니 레벨 상향 조절이 안되는 군요. ^^
달수님 A/S 가뭄에 단비 기둘리는 심정은 ............
달수님 A/S 가뭄에 단비 기둘리는 심정은 ............
이런...
처음만 읽고...잘되는 줄로만 착각을 -.-;;;
뭔 리플이 늘어서 보았더니..
죄송하게 되었습니다.
관리자만 레벨업을 하게되어서 그 부분이 빠졌군요.
이렇게 해주시고
(중략)
.
.
<?
if(!$is_admin == 'super'|| !$is_admin == 'group')
{##########################################################
echo"<b> 현재레벨:<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);
처음만 읽고...잘되는 줄로만 착각을 -.-;;;
뭔 리플이 늘어서 보았더니..
죄송하게 되었습니다.
관리자만 레벨업을 하게되어서 그 부분이 빠졌군요.
이렇게 해주시고
(중략)
.
.
<?
if(!$is_admin == 'super'|| !$is_admin == 'group')
{##########################################################
echo"<b> 현재레벨:<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);
오달수님 훌륭하게 작동합니다. 감사합니다.
이제야 봤습니다 ^^ 고맙습니다.