회원가입 폼에서 여분필드 활용

회원가입 폼에서 여분필드 활용

QA

회원가입 폼에서 여분필드 활용

본문

http://gnustudy.com/bbs/board.php?bo_table=skin_etc&wr_id=2

 

이 글을 참조하여 회원가입에 여분필드를 활용해보려하는데...

 

회원가입 폼 -> 이메일 부분에 여분필드로 도메인주소를 select값으로 넘겨받고싶습니다....ㅠㅠㅠㅠ

 


<input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>">
 
<!-- 기존 이메일 폼 -->
<input type="text" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email" required class="frm_input required" maxlength="100" placeholder="E-mail">
@
<!-- 도메인 text부분 여분필드 mb_1 추가 -->
<input type="text" name="mb_1" value="<?php echo isset($member['mb_1'])?$member['mb_1']:''; ?>" id="mb_1" required readonly class="frm_input required" maxlength="100" placeholder="E-mail 선택">
 
<!-- 도메인 select부분 여분필드 mb_2 추가 -->
<select name="mb_2" id="mb_2" class="frm_input">
    <option value="">E-mail 선택</option>
    <option value="naver.com" <?php echo ($member['mb_2'] == "naver.com") ? "selected" : ""; ?>>naver.com</option>
    <option value="daum.net" <?php echo ($member['mb_2'] == "daum.net") ? "selected" : ""; ?>>daum.net</option>
    <option value="nate.com" <?php echo ($member['mb_2'] == "nate.com") ? "selected" : ""; ?>>nate.com</option>
    <option value="hotmail.com" <?php echo ($member['mb_2'] == "hotmail.com") ? "selected" : ""; ?>>hotmail.com</option>
    <option value="yahoo.com" <?php echo ($member['mb_2'] == "yahoo.com") ? "selected" : ""; ?>>yahoo.com</option>
    <option value="empas.com" <?php echo ($member['mb_2'] == "empas.com") ? "selected" : ""; ?>>empas.com</option>
    <option value="korea.com" <?php echo ($member['mb_2'] == "korea.com") ? "selected" : ""; ?>>korea.com</option>
    <option value="dreamwiz.com" <?php echo ($member['mb_2'] == "dreamwiz.com") ? "selected" : ""; ?>>dreamwiz.com</option>
    <option value="gmail.com" <?php echo ($member['mb_2'] == "gmail.com") ? "selected" : ""; ?>>gmail.com</option>
    <option value="etc">직접 입력</option>
</select>

 

 

register_form.skin.php 페이지 내에 폼구조를 저렇게 해놓았습니다.

 

ajax.mb_email.php 페이지 내에 mb_email을 체크하고 경고창 띄우는 부분은 주석처리 해놓았습니다.

 


// if ($msg = empty_mb_email($mb_email)) die($msg);
// if ($msg = valid_mb_email($mb_email)) die($msg);
// if ($msg = prohibit_mb_email($mb_email)) die($msg);
// if ($msg = exist_mb_email($mb_email, $mb_id)) die($msg);

 

저 상태에서 회원가입 양식 작성 후 회원가입하려하면 " E-mail 주소를 입력해 주십시오. " 경고창이 뜨고 약관동의 후 회원가입하라는 경고창이 뜨면서 약관동의 체크페이지로 넘어가버립니다...;;

 

저번에도 회원가입시 이메일을 아이디와 도메인부분을 분류하는 방법에 대해 문의남긴적이 있는데

 

생각해보니 여분필드를 활용하면 될것같아서 여분필드로 도메인부분을 select값으로 넘겨받으려 하는데

 

가입조차 안되고있으니... 어찌해야할지 막막해서 문의 남겨봅니다ㅠㅠㅠ

이 질문에 댓글 쓰기 :

답변 1

여분필드를 쓰실 필요 없이 mb_email에서 @를 기준으로 쪼개면 될것 같은데요.. 

explode 라는 함수를 쓰면 string을 기준으로 쪼갤수 있습니다. 

 

여분필드를 사용하시면,

mb_email에 있는 값이랑 mb_2 에 있는 값이랑 달라서 문제가 발생할 수 있습니다. 

 

여분필드 사용여부와 별개로

이메일 도메인은 모든 케이스에 대해서 if 처리가 가능한 상태가 아니므로 

열거하신 9개의 도메인이 아닌 직접 입력한 부분에 대해서도 따로 처리가 필요합니다.

12-21 쪽을 반복문으로 고쳐서, 처리를 하심이 좋아보입니다.. 

답변 감사드립니다...

그런데 제가 하려는 것은 mb_email을 직접 입력을 받다보니 오타가 많아서 도메인부분을 select으로 하려고 하는거거든요..;;

말씀하신걸 보다보니 직접입력으로 선택해서 입력받은 부분을 처리해야 하는 필요성은 공감합니다...

근데 제가 개발쪽은 잘 몰라서그런건지 제가 하고자하는 방향과는 다른거같아서 이해를 못하는건지... 전체적으로 무슨 말씀을 하시는지를 모르겠어요ㅠㅠㅠ

html 페이지 내에서
1. email domain 쪽을 select를 구분하는 것
2. 실제 DB에 mb_2에 domain을 따로 저장하는 것
에서 mb_2 사용이 꼭 필요한 상태가 아니라는 이야기 입니다.
실제 유저 데이터가
mb_id, mb_email, mb_2
user_1, *** 개인정보보호를 위한 이메일주소 노출방지 ***, etc (도메인 미입력)
mb_2에 추가로 저장하려고 하니까
예외처리가 복잡해지지 않는가 하는 이야기 였습니다.


1. 실제 DB에서는 mb_email로 하나에 저장하고
2. 사용자 입력시에는 @ 기준으로 나눠서 보여주는데 (PHP)
2-1. 앞쪽은 input 처리하고  (HTML)
2-2. 뒤쪽은 select 로 처리한다.  (HTML)
2-3. select 에서 기타 선택시 select를 가리고 input으로 바꾼다 (javascript)
3. 사용자 정보수정 시, 앞@뒤 로 string을 합쳐서 mb_email에 저장한다.

뿌우우님 조언을 듣고 생각해본건데...

mb_1 = text  메일 아이디를 직접 입력받음.
mb_2 = select 메일 도메인을 선택하게함.

mb_email = mb_1.'@'.mb_2

이런식으로 하면 어떨까 생각이 듭니다... 그런데 register_form.skin 에서

mb_email은 hidden 처리를 하고

mb_1과 mb_2의 값을 hidden 처리된 mb_email에 value에 넣어주고 update로 넘길 수는 있는건가요...??

제가 생각하는게 이러나 저러나 같은 건가요...??

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

회원로그인

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