닉네임을 수정할 기간이 아니면 포인트 내고 수정하자. > 그누4 팁자료실

그누4 팁자료실

그누보드4와 관련된 팁을 여러분들과 함께 공유하세요.
나누면 즐거움이 커집니다.

닉네임을 수정할 기간이 아니면 포인트 내고 수정하자. 정보

닉네임을 수정할 기간이 아니면 포인트 내고 수정하자.

본문

들어가기전.....
g4의경우 이름과 닉네임을 사용할수가 있는데 닉네임의 경우
회원이 원하는대로 중복이 아닐경우 변경을 할수가 있게 되어 있습니다.

그런데.....
회원정보 수정시 닉네임(별명)을 수정하고 싶지만 환경설정에서
닉네임 등록 또는 수정후 지정한 기간이 지나야만 수정이
가능하므로 정작 본인은 수정하고 싶어도 수정을 못합니다.

특히 사이트 운영자가 엽기적으로 1년~~~이상으로 수정할수 있는
기간을 길게 해버리면 대략 난감하죠.^^;

이걸 사이트 운영자가 회원들에게 아량을? 베풀어서 돈(포인트) 을
받고 닉네임을 수정하게 해주는 겁니다.ㅎㅎ


=닉네임을 돈받고 팔기시작=

아래의 설명은 g4기본 배포용 으로 설명 합니다.

준비물:
회원가입용(수정용)스킨 >g4/skin/member/basic/register_form.skin.php
회원가입용 처리파일 >g4/bbs/register_form_update.php

1,
스킨의 register_form.skin.php 를 수정

register_form.skin.php 의 내용중 아래의 내용을 찾습니다.


        <? if ($member[mb_nick_date] <= date("Y-m-d", $g4[server_time] - ($config[cf_nick_modify] * 86400))) { // 별명수정일이 지났다면 수정가능 ?>
        <input type=hidden name=mb_nick_default value='<?=$member[mb_nick]?>'>
        <TR bgcolor="#FFFFFF">
            <TD class=m_title>별명</TD>
            <TD class='m_padding lh'>
                <input class=m_text type=text name='mb_nick' maxlength=20 minlength="2" required itemname="별명" value='<?=$member[mb_nick]?>' onchange="fregisterform.mb_nick_enabled.value='';">
                &nbsp;<a href="javascript:mb_nick_check();"><img width="70" height="20" src="<?=$member_skin_path?>/img/join_check_btn.gif" border=0 align=absmiddle></a>
                <br>별명을 바꾸시면 앞으로 <?=(int)$config[cf_nick_modify]?>일 이내에는 변경이 안됩니다.
            </TD>
        </TR>
        <? } else { ?>
        <input type=hidden name="mb_nick" value="<?=$member[mb_nick]?>">
        <? } ?>




위의 코드를 아래의 코드로 전부 교체 합니다.




      <? if ($member[mb_nick_date] <= date("Y-m-d", $g4[server_time] - ($config[cf_nick_modify] * 86400))) { // 별명수정일이 지났다면 수정가능 ?>
        <input type=hidden name=mb_nick_default value='<?=$member[mb_nick]?>'>
        <TR bgcolor="#FFFFFF">
            <TD class=m_title>별명</TD>
            <TD class='m_padding lh'>
                <input class=m_text type=text name='mb_nick' maxlength=20 minlength="2" required itemname="별명" value='<?=$member[mb_nick]?>' onchange="fregisterform.mb_nick_enabled.value='';">
                &nbsp;<a href="javascript:mb_nick_check();"><img width="70" height="20" src="<?=$member_skin_path?>/img/join_check_btn.gif" border=0 align=absmiddle></a>
                <br>별명을 바꾸시면 앞으로 <?=(int)$config[cf_nick_modify]?>일 이내에는 변경이 안됩니다.
            </TD>
        </TR>
        <? } else { ?>
    <input type=hidden name=mb_nick_default value='<?=$member[mb_nick]?>'>
        <TR bgcolor="#FFFFFF">
            <TD class=m_title>별명</TD>
            <TD class='m_padding lh'>
                <input class=m_text type=text name='mb_nick' maxlength=20 minlength="2" required itemname="별명" value='<?=$member[mb_nick]?>' onchange="fregisterform.mb_nick_enabled.value='';">
                &nbsp;<a href="javascript:mb_nick_check();"><img width="70" height="20" src="<?=$member_skin_path?>/img/join_check_btn.gif" border=0 align=absmiddle></a>
                <br><font color=red>현재 회원님의 별명을 바꾸실수 있는 기간이 아닙니다.</font>
<br>지금 별명을 바꾸시면 <b>5,000 </b>포인트를 지불 하셔야 합니다.
<br><input type="checkbox" name="mb_nicksc" value="yes"> &nbsp; ← 포인트 지불후 별명을 바꾸시려면 체크 하세요.    
            </TD>
        </TR>
        <input type=hidden name="mb_nickms" value="<?=$member[mb_nick]?>">
        <? } ?>




2,
bbs/register_form_update.php 를 수정

사용자 스킨을 로드하게 되어 있지만 위치상 어쩔수없이 원본을 수정하며
사용자 스킨에서 사용이 가능하게 고수님들의 손길이 필요 합니다.^^


register_form_update.php 의 내용중 $w=="u" 수정부분이며
아래의 코드를 찾으세요. 수정시 데이터를 업데이트 시키는 부분입니다.

    $sql = " update $g4[member_table]
                set mb_name        = '$mb_name',
                    mb_nick        = '$mb_nick',
                    mb_password_q  = '$mb_password_q',
                    mb_password_a  = '$mb_password_a',



여기서 $sql = " update $g4[member_table] <- 이라인의 바로위에
아래의 코드를 붙여넣습니다.



if($mb_nicksc =="yes"){
 if ($member[mb_point] < 5000){
  alert("보유한 포인트가 부족하여 별명을 수정할수 없습니다.", "$g4[path]");
 }
 $cost1 ="5000";
  insert_point($member[mb_id], $cost1 * (-1), " 별명 수정시 $cost1 포인트를 지불(사용함)", '', '', '');
 $content ="회원님의 별명(닉네임)을 수정할수있는 기간이 아니지만 $cost1 포인트를 지불후 수정하였습니다.";
 $tmp_row = mysql_fetch_array(mysql_query("select max(me_id) as max_me_id from $g4[memo_table]"));
 $me_ids = $tmp_row[max_me_id] + 1;
  mysql_query("insert into $g4[memo_table] (me_id,me_recv_mb_id,me_send_mb_id,me_send_datetime,me_read_datetime,me_memo) values ('$me_ids','$member[mb_id]','$member[mb_id]','$g4[time_ymdhis]','','$content')");
  mysql_query("update $g4[member_table] set mb_memo_call='$member[mb_id]' where mb_id='$member[mb_id]'");
 $mb_nick =$mb_nick;
}else {
 $mb_nick =$mb_nickms;
}



5000 으로 된곳이 닉네임 수정시 받을 포인트이며 적절히 수정 하시면 됩니다.
닉네임을 돈을받고 팔경우에는 정보 수정자에게 쪽지로 결과를 통보해 주도록
되어 있으며 포인트차감 기록까지 되도록 해두었습니다.
소스가 날림공사라 지저분 하므로 최적화를 시켜 주시면 합니다.^^
추천
1
  • 복사

댓글 7개

이미 이팁을 적용 하신분은 참고바랍니다.
포인트를 지불하면서 닉네임 수정시 회원이 보유한 포인트와 수정시 내야할 포인트의
검사과정이 누락이 되어 추가한후 수정이 되었습니다.

추가된부분
 if ($member[mb_point] < 5000){
  alert("보유한 포인트가 부족하여 별명을 수정할수 없습니다.", "$g4[path]");
 }
버젼 업으로 수정을 조금 하셔야 합니다.

register_form_update.php 파일에



 // 자바스크립트로 정보변경이 가능한 버그 수정
        // 별명수정일이 지나지 않았다면
        if ($member[mb_nick_date] > date("Y-m-d", $g4[server_time] - ($config[cf_nick_modify] * 86400)))
            $mb_nick = $member[mb_nick];


 이런 부분이 있는데 이것을 다음과 같이 수정 하십시요..

 // 자바스크립트로 정보변경이 가능한 버그 수정
        // 별명수정일이 지나지 않았다면
if($mb_nicksc =="yes"){
$mb_nick = $mb_nick;
} else {
        if ($member[mb_nick_date] > date("Y-m-d", $g4[server_time] - ($config[cf_nick_modify] * 86400)))
            $mb_nick = $member[mb_nick];
}
흠 오래된거라 그런가요? 왜 전 에러가 나죠
Parse error: syntax error, unexpected T_STRING in /home4/host4/he/html/bbs/bbs/register_form_update.php on line 323
© SIRSOFT
현재 페이지 제일 처음으로