회원가입 폼 중 이메일 인증에 관한 질문 드립니다.
본문
안녕하세요. 독학하며 하다보니 막히는 부분이 많아 여쭤봅니다.
아미나 BS4-Basic 테마를 사용하는 중입니다.
저는 미국에서 쓰고 싶어서 홈페이지와 게시판 전체를 영어로 바꾸고 싶어 진행하는 중이고
회원 가입시 특정 도메인 몇개의 이메일만 가입 가능, 인증하게 하고 싶어합니다.
이 게시판에 질문을 통해 답변해주신 분으로부터 아이디어를 얻어
AI에게 회원 가입시 뜨는 이메일 인증 칸을 수정하게끔
소스를 짜달라고 했고
요렇게 이메일 항목에
폼, @ , 도메인 고르기 풀다운메뉴
구성을 할 수 있었는데요.
정말 마음에 드는데
문제는..
회원 가입 확인 버튼을 누르면
이렇게 뜬다는겁니다. ㅠㅠ
질문은..
1-1 폼+@+내가 고른 이메일 도메인
요렇게 한번에 글자로 인식이 안되는 문제일까요 아니면
애초에 이렇게 생성하면 안 되는 문제였을까요?
제가 저 부분의 소스를 올리면 혹시 봐주실 수 있을까요?
혹은..
"지정된 도메인의 이메일만 가입/인증 가능!"
하게끔 하는 쉬운 방법이 있다면 말씀해주시면 감사하겠습니다.
제가 기초도 없는 초보이기는 한데 알려주시면 최대한 찾아서 해보겠습니다!!!
1-2 저렇게 뜨는 창 조차 한글이 있으면 안되는데,
저 경고창의 내용을 수정할 수 있는 경로 아시는 분 계시면 도움 부탁드립니다.
- 추가
혹시나 하여 첫 번째 칸에 이메일 전체를 써보았습니다.
그리고 가입 버튼을 누르니
이런 경고창이 뜨네요.
어떻게 해결해야 할까요?
하...
다음 질문은
요렇게 주소창 앞부분에 not secure가 뜬다는건데, 이건 유료 호스팅 신청하면 사라지는 문제일까요?
홈페이지 제작이 얼추 마무리 되면 당연히 유료 도메인, 호스팅 신청 예정이라
지금 단계에서는 신경 안써도 되는 부분일지 궁금합니다.
늘 많은 도움 받고 있습니다.
미리 감사드립니다.
답변 2
안녕하세요...
@오리와빈이 님
1. 아래 코드를 다음과 같이 수정 해주세요
먼저
<div style="display: inline-block;">
<input type="text" name="mb_email_id" value="<?php echo isset($member['mb_email']) ? explode('@', $member['mb_email'])[0] : ''; ?>" id="reg_mb_email" required class="form-control email required" size="35" maxlength="50" style="display: inline-block; width: auto;">
@
<select name="mb_email_domain" id="reg_mb_email_domain" required class="form-control email required" style="display: inline-block; width: auto;">
<option value="naver.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@naver.com') !== false) echo 'selected'; ?>>naver.com</option>
<option value="a.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@a.com') !== false) echo 'selected'; ?>>a.com</option>
<option value="a2.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@a2.com') !== false) echo 'selected'; ?>>a2.com</option>
<option value="a3.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@a3.com') !== false) echo 'selected'; ?>>a3.com</option>
<option value="a4.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@a4.com') !== false) echo 'selected'; ?>>a4.com</option>
</select>
</div>
이부분 맨 밑에 아래 코드를 추가 해주세요
<input type="hidden" name="mb_email" value="<?php echo isset($member['mb_email'])?$member['mb_email']:''; ?>" id="reg_mb_email">
그리고 폼 체크 스크립트에 아래 코드를 추가 해주세요
// submit 최종 폼체크
function fregisterform_submit(f)
{
이부분에 회원 아이디 검사 코드 끝나는 부분에 아래 코드를 넣어주세요
if (f.w.value == "" || f.mb_email.value.length > 0) {
if (typeof f.mb_email_id !== 'undefined' && typeof f.mb_email_domain !== 'undefined') {
if (f.mb_email_id.value.length < 1) {
alert("이메일 아이디를 입력해 주세요.");
f.mb_email_id.focus();
return false;
}
if (f.mb_email_domain.value.length < 1) {
alert("이메일 도메인을 선택하거나 입력해 주세요.");
f.mb_email_domain.focus();
return false;
}
// 이메일 아이디와 도메인을 합쳐서 mb_email 필드에 설정
f.mb_email.value = f.mb_email_id.value + "@" + f.mb_email_domain.value;
}
}
1-2번의 경우는 lib/register.lib.php 파일에 한글로 된 부분을 영문으로 변경 하시면 됩니다.
마지막 질문은 유료 호스팅이 아니라 SSL 입니다. 보안 인증서가 필요합니다.
어느 회사의 호스팅을 사용하시는지는 작성되지 않아 모르겠지만,
대부분의 호스팅회사의 SSL 신청 페이지가 있습니다.
무료/유료/ 초기만 (설치비) 유료 등 회사마다 상이하므로
사용중인 호스팅 회사를 확인해보시면 되겠습니다.
!-->!-->!-->!-->
<div class="form-group row">
<label class="col-sm-2 col-form-label" for="reg_mb_email">E-mail<strong class="sr-only">Required</strong></label>
<div class="col-sm-10">
<input type="hidden" name="old_email" value="<?php echo $member['mb_email']; ?>">
<div style="display: inline-block;">
<input type="text" name="mb_email_id" value="<?php echo isset($member['mb_email']) ? explode('@', $member['mb_email'])[0] : ''; ?>" id="reg_mb_email" required class="form-control email required" size="35" maxlength="50" style="display: inline-block; width: auto;">
@
<select name="mb_email_domain" id="reg_mb_email_domain" required class="form-control email required" style="display: inline-block; width: auto;">
<option value="naver.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@naver.com') !== false) echo 'selected'; ?>>naver.com</option>
<option value="a.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@a.com') !== false) echo 'selected'; ?>>a.com</option>
<option value="a2.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@a2.com') !== false) echo 'selected'; ?>>a2.com</option>
<option value="a3.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@a3.com') !== false) echo 'selected'; ?>>a3.com</option>
<option value="a4.com" <?php if (isset($member['mb_email']) && strpos($member['mb_email'], '@a4.com') !== false) echo 'selected'; ?>>a4.com</option>
</select>
</div>
<?php if ($config['cf_use_email_certify']) { ?>
<p class="form-control-plaintext f-de pb-0">
<?php if ($w == '') { echo "You must verify the contents sent to your email to complete the registration."; } ?>
<?php if ($w == 'u') { echo "If you change your email address, you will need to verify it again."; } ?>
</p>
<?php } ?>
</div>
</div>