회원가입 폼에서 여분필드 활용 채택완료
http://gnustudy.com/bbs/board.php?bo_table=skin_etc&wr_id=2
이 글을 참조하여 회원가입에 여분필드를 활용해보려하는데...
회원가입 폼 -> 이메일 부분에 여분필드로 도메인주소를 select값으로 넘겨받고싶습니다....ㅠㅠㅠㅠ
</p>
<p><input type="hidden" name="old_email" value="<?php echo $member['mb_email'] ?>"></p>
<p> </p>
<p><!-- 기존 이메일 폼 --></p>
<p><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">
@</p>
<p><!-- 도메인 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 선택"></p>
<p> </p>
<p><!-- 도메인 select부분 여분필드 mb_2 추가 --></p>
<p><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></p>
<p>
register_form.skin.php 페이지 내에 폼구조를 저렇게 해놓았습니다.
ajax.mb_email.php 페이지 내에 mb_email을 체크하고 경고창 띄우는 부분은 주석처리 해놓았습니다.
</p>
<p>// 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);</p>
<p>
저 상태에서 회원가입 양식 작성 후 회원가입하려하면 " E-mail 주소를 입력해 주십시오. " 경고창이 뜨고 약관동의 후 회원가입하라는 경고창이 뜨면서 약관동의 체크페이지로 넘어가버립니다...;;
저번에도 회원가입시 이메일을 아이디와 도메인부분을 분류하는 방법에 대해 문의남긴적이 있는데
생각해보니 여분필드를 활용하면 될것같아서 여분필드로 도메인부분을 select값으로 넘겨받으려 하는데
가입조차 안되고있으니... 어찌해야할지 막막해서 문의 남겨봅니다ㅠㅠㅠ
답변 1개
여분필드를 쓰실 필요 없이 mb_email에서 @를 기준으로 쪼개면 될것 같은데요..
explode 라는 함수를 쓰면 string을 기준으로 쪼갤수 있습니다.
여분필드를 사용하시면,
mb_email에 있는 값이랑 mb_2 에 있는 값이랑 달라서 문제가 발생할 수 있습니다.
여분필드 사용여부와 별개로
이메일 도메인은 모든 케이스에 대해서 if 처리가 가능한 상태가 아니므로
열거하신 9개의 도메인이 아닌 직접 입력한 부분에 대해서도 따로 처리가 필요합니다.
12-21 쪽을 반복문으로 고쳐서, 처리를 하심이 좋아보입니다..
답변에 대한 댓글 3개
1. email domain 쪽을 select를 구분하는 것
2. 실제 DB에 mb_2에 domain을 따로 저장하는 것
에서 mb_2 사용이 꼭 필요한 상태가 아니라는 이야기 입니다.
실제 유저 데이터가
mb_id, mb_email, mb_2
user_1, user_1@naver.com, naver.com 으로 들어있으면 문제가 없는데
이런 저런 데이터 예외 사항이 발생할 수 있는데
user_2, user_2@naver.com, gmail.com (로직 오류)
user_3, , naver.com (이메일 공란)
user_4, user_4@naver.com, 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로 넘길 수는 있는건가요...??
제가 생각하는게 이러나 저러나 같은 건가요...??
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그런데 제가 하려는 것은 mb_email을 직접 입력을 받다보니 오타가 많아서 도메인부분을 select으로 하려고 하는거거든요..;;
말씀하신걸 보다보니 직접입력으로 선택해서 입력받은 부분을 처리해야 하는 필요성은 공감합니다...
근데 제가 개발쪽은 잘 몰라서그런건지 제가 하고자하는 방향과는 다른거같아서 이해를 못하는건지... 전체적으로 무슨 말씀을 하시는지를 모르겠어요ㅠㅠㅠ