회원가입 여분필드 사용시 몇가지 질문드립니다.

회원가입 여분필드 사용시 몇가지 질문드립니다.

QA

회원가입 여분필드 사용시 몇가지 질문드립니다.

본문

아래 소스와 같이 회원가입시

성별, 연령, 관심사항등을 받으려고 합니다.

 

그런데 문제가 가만보니 이렇게 하면 가입시에는 문제가 안될지 모르겠지만 정보수정시 값을 받아오질 못하는 문제가 있겠더라구여.

radio와 select일때 입력된 정보가 선택되어 있게 보여주려면 어떻게 소스를 수정해야할까요..

그리고 관리자 모드상에서도 같은 방식으로 하면 되는지 알고 싶습니다.

 

너무 무식한 질문이라 죄송합니다....ㅜㅠ

 

 

 <tr>
        </tr>
   <td>
    <input type="radio" name=mb_1 value="여성" <?if($write[mb_1]=="여성")echo"checked";?>>여성  
    <input type="radio" name=mb_1 value="남성"<?if($write[mb_1]=="남성")echo"checked";?>>남성
            </td>
        </tr>
  <tr>
            <th scope="row"><label for="reg_mb_name">연령<strong class="sound_only">선택사항</strong></label></th>
   <td>
    <select name='mb_2' required itemname="연령" class="frm_input frm_address">
     <option value=''>선택하세요</option>
     <option value='10대' <? if($write[mb_2] == '10대') echo " selected "; ?>>10대</option>
     <option value='20대' <? if($write[mb_2] == '20대') echo " selected "; ?>>20대</option>
     <option value='30대' <? if($write[mb_2] == '30대') echo " selected "; ?>>30대</option>
     <option value='40대' <? if($write[mb_2] == '40대') echo " selected "; ?>>40대</option>
     <option value='50대' <? if($write[mb_2] == '50대') echo " selected "; ?>>50대</option>
     <option value='60대' <? if($write[mb_2] == '60대') echo " selected "; ?>>60대</option>
     <option value='70대' <? if($write[mb_2] == '70대') echo " selected "; ?>>70대</option>
     <option value='기타' <? if($write[mb_2] == '기타') echo " selected "; ?>>기타</option>
    </select>
            </td>
        </tr>
  <tr>
            <th scope="row"><label for="reg_mb_name">관심정보<strong class="sound_only">선택사항</strong></label></th>
   <td><span class="frm_info">
    선택하신 관심정보에 해당되는 정보를 어플을 통해 받으실 수 있습니다.
    </span>
    <input type=checkbox name=mb_3 value="1" <?=$write[mb_3]?>>1  
    <input type=checkbox name=mb_3 value="1" <?=$write[mb_3]?>>2  
    <input type=checkbox name=mb_3 value="1" <?=$write[mb_3]?>>3  
    <input type=checkbox name=mb_3 value="1" <?=$write[mb_3]?>>4
    
            </td>
        </tr>​ 

 

이 질문에 댓글 쓰기 :

답변 3

아.. 그렇군요. 원본을 본게 아니라 제가 수정해놓은걸 보면서 답변했더니 이런 실수를..

하는김에 좀 더 수정해보죠.

 

bbs/register_form_update.php 43라인 이후, 그러니까 아래 코드를 찾으시구요

$key = get_session("captcha_keystring");

if (!($key && $key == $_POST[wr_key])) {

    unset($_SESSION['captcha_keystring']);

    alert("정상적인 접근이 아닌것 같습니다.");

}

 

이거 아랫줄에 다음줄을 추가해줍니다.

@include_once ("$g4[path]/skin/member/$config[cf_member_skin]/register_update.head.skin.php");

 

그런다음 스킨폴더의 register_update.head.skin.php​ 파일을 새로 만들어줍니다.


 
<?
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 
 
// 자신만의 코드를 넣어주세요.
 
$mb_3 = $_POST['mb_3'] = implode(',', $_POST['mb_3']); 
?>

 

그리고 register_form.skin.php 상단에는 넣으라던건 취소합니다. 추가했던 코드가 있으면 지워주세요.

그리고 mb_3 input 태그 부분은 다음으로 바꿔줍니다.


<?
$mb_3 = explode(',', $member['mb_3']);
for($i=1; $i<=4; $i++) {
    echo '<input type="checkbox" name="mb_3[]" value="'.$i.'" '.( in_array($i, $mb_3) ? 'checked' : '').' >1  '.PHP_EOL;
}
?>

<?=$write[mb_1]?>

write 가 아니라...

$member로 사용하셔야 합니다. 

네 감사합니다. 그런데 그렇게 해도 가입을하고 정보수정으로 가면 값이 없이 나와서요...ㅠㅜ
라디오, 체크, 셀렉트 등으로 되어 있는 경우이며 정보수정에서 값이 나오게 하고 싶거든요...ㅠㅜ

성별 연령은 $member로 하신다면 잘 나와야 할텐데..

가입후 여분필드가 제대로 저장됐는지 확인을 위해 db의 내용을 직접 확인해보시는게 좋겠네요.

 

그리고 관심정보에서는..

name="mb_3" 이걸 mb_3[] 이걸로 바꾸고 value="1" 이 값을 1~4로 넣고

register_form_update.head.skin.php 에서 $mb_3 = $_POST['mb_3'] = implode(',', $_POST['mb_3']); 이런식으로 배열로 들어온 값을 합쳐주시고

다시 register_form.skin.php 상단에서 $member['mb_3'] = ','.$member['mb_3'].','; 처리로 앞뒤에 컴마를 넣어주시고,

관심정보 input 부분에 <? if(strstr(',1,', $member['mb_3'])) echo 'checked'; ?> 로 넣어주시면 선택버튼들도 될듯해요. (strstr의 ',1,' 여기도 1~4까지 들어가야겠죠)

감사합니다. 덕분에 많은 도움이되었습니다.

 

<input type=checkbox name=mb_3 value='1' <? if(strstr(',1,', $member['mb_3'])) echo 'checked'; ?> >1&nbsp;
    <input type=checkbox name=mb_3 value='4' <? if(strstr(',4,', $member['mb_3'])) echo 'checked'; ?> >4 &nbsp;
    <input type=checkbox name=mb_3 value='3' <? if(strstr(',3,', $member['mb_3'])) echo 'checked'; ?> >3 &nbsp;
    <input type=checkbox name=mb_3 value='4' <? if(strstr(',4,', $member['mb_3'])) echo 'checked'; ?> >4 &nbsp;​

 

 

이렇게 해주고

register_form_update.head.skin.php 에....모바일그누보드5버전에스는 register_form_update.head.skin.php 파일이 없더라구요 그래서 register_form.skin.php 페이지 상단에 아래와 같이 넣었거든요

 

$mb_3 = $_POST['mb_3'] = implode(',', $_POST['mb_3']);

$member['mb_3'] = ','.$member['mb_3'].',';

 

이게 문제 같은데...ㅠㅜ

 

무튼 이렇게 했을때 여러개 체크를 해도 다시 들어와보면 하나만 체크가 되어 있더라구요..

 

제가 완전 초보라..ㅠㅜ..

 

조금만 더 도와주시면 고맙겠습니다.

ㅠㅜ

답변을 작성하시기 전에 로그인 해주세요.
전체 18
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT