회원 아이디를 이메일 주소로 가입 및 로그인 > 그누보드팁

본문 바로가기
전체검색

그누스킨닷컴

그누보드팁

그누보드 영카트 초보 사용자를 위한 기본 매뉴얼, 스킨 제작 기초강좌를 공유합니다.

회원 아이디를 이메일 주소로 가입 및 로그인

페이지 정보

작성자 관리자 작성일18-03-21 15:04 조회680회

본문

회원 가입할 때 아이디를 이메일 주소로 사용하는 방법입니다.

로그인할 때도 이메일 주소를 입력해서 로그인할 수 있습니다.



1. 스킨 파일 수정


skin/member/basic/register_form.skin.php 파일 수정

(모바일 페이지도 사용 중이라면 모바일 스킨도 별도로 수정)


 

1-1.

안내 문구 및 아이디 글자수 제한을 이메일 길이에 맞게 적당히 수정

minlength = 최소 글자수, maxlength = 최대 글자수


<span class="frm_info">영문자, 숫자, _ 만 입력 가능. 최소 3자이상 입력하세요.</span>
<input type="text" name="mb_id" value="<?php echo $member['mb_id'] ?>" id="reg_mb_id" <?php echo $required ?> <?php echo $readonly ?> class="frm_input <?php echo $required ?> <?php echo $readonly ?>" minlength="3" maxlength="20">
 

1-2. 

이메일 입력 부분 삭제


<tr>
    <th scope="row"><label for="reg_mb_email">E-mail<strong class="sound_only">필수</strong></label></th>
    <td>
        <?php if ($config['cf_use_email_certify']) {  ?>
        <span class="frm_info">
            <?php if ($w=='') { echo "E-mail 로 발송된 내용을 확인한 후 인증하셔야 회원가입이 완료됩니다."; }  ?>
            <?php if ($w=='u') { echo "E-mail 주소를 변경하시면 다시 인증하셔야 합니다."; }  ?>
        </span>
        <?php }  ?>
        <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 email required" size="70" maxlength="100">
    </td>
</tr>

1-3. 

같은 파일 하단 스크립트에서 이메일 검사 부분 삭제


// E-mail 검사
if ((f.w.value == "") || (f.w.value == "u" && f.mb_email.defaultValue != f.mb_email.value)) {
    var msg = reg_mb_email_check();
    if (msg) {
        alert(msg);
        f.reg_mb_email.select();
        return false;
    }
}


2. bbs/register_form_update.php 파일 수정


2-1.


$mb_email       = trim($_POST['mb_email']);

여기를 이렇게 수정

$mb_email       = trim($_POST['mb_id']);

2-2.

아래 내용 주석 처리


// if ($msg = empty_mb_email($mb_email))   alert($msg, "", true, true);
// if ($msg = valid_mb_email($mb_email))   alert($msg, "", true, true);
// if ($msg = prohibit_mb_email($mb_email))alert($msg, "", true, true);
 

2-3.

아래 내용에서 빨간색 부분 삭제


if (get_session('ss_check_mb_id') != $mb_id || get_session('ss_check_mb_nick') != $mb_nick || get_session('ss_check_mb_email') != $mb_email) {
    set_session('ss_check_mb_id', '');
    set_session('ss_check_mb_nick', '');
    set_session('ss_check_mb_email', '');
    alert('올바른 방법으로 이용해 주십시오.');
}
 

수정하면 이렇게 되겠죠


if (get_session('ss_check_mb_id') != $mb_id || get_session('ss_check_mb_nick') != $mb_nick) {
    set_session('ss_check_mb_id', '');
    set_session('ss_check_mb_nick', '');
    alert('올바른 방법으로 이용해 주십시오.');
}
 


3. lib/register.lib.php 파일 수정


function valid_mb_id($reg_mb_id)
{
    if (preg_match("/[^0-9a-z_]+/i", $reg_mb_id))
        return "회원아이디는 영문자, 숫자, _ 만 입력하세요.";
    else
        return "";
}
 

위 내용을 이렇게 변경


function valid_mb_id($reg_mb_id)
{
    if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $reg_mb_id))
        return "아이디는 이메일 주소로 사용합니다.\n이메일 주소를 올바르게 입력해 주십시오.";
    else
        return "";
}
 


4. js/jquery.register_form.js 파일 수정


아이디 체크 부분에서 빨간색 부분 삭제하거나 주석 처리하고 바로 윗줄 추가


"reg_mb_id": $("#reg_mb_id").val() // 추가됨
// "reg_mb_id": encodeURIComponent($("#reg_mb_id").val())
 


5. g5_member 테이블에서 mb_id 필드 타입 변경


b9fb32b983794bbd41e213b9aa93360b_1521615544_5344.gif


기본 값이 짧아서 이메일 입력 용도에는 맞지 않을 겁니다.

varchar(255) 정도로 변경하세요.

부렁님의 댓글

부렁

팁으로 올려주셔서 감사합니다.
그런데 다 적용하고 테스트 해보니 bbs/register_form_update.php 에서

if(!$mb_id)
    alert('회원아이디 값이 없습니다. 올바른 방법으로 이용해 주십시오.');

이 부분이 뜨더라고요.
이메일 값을 mb_id에 저장했으니 주석/삭제 처리하기도 그렇고 뭔가 조금 잘못된 것 같은데 어떻게 해야할까요?

관리자님의 댓글

관리자 댓글의 댓글

여러 번 다시 해봤지만 문제없이 잘 됩니다. 수정을 잘 못 하신 것 같습니다.

부렁님의 댓글

부렁 댓글의 댓글

집념으로 찾아냈습니다 -_-ㅋ
그리고 계정분실(password_lost, password_lost2) 관련해서 기존 email로 되어있던데 수정이 필요하지 않을까요?

관리자님의 댓글

관리자 댓글의 댓글

해당 부분과는 관련이 없습니다. 이메일 필드에도 이메일 주소는 그대로 저장됩니다.

anj님의 댓글

anj

저는왜 안될까요..http://~~~~~~~~/bbs/register_form_update.php 페이지에서 안넘어가는데 ㅠㅠ

지티알님의 댓글

지티알

js/jquery.register_form.js 파일에는

"reg_mb_id": encodeURIComponent($("#reg_mb_id").val())
이 부분이 총 4군데 있습니다.

reg_mb_id_check
reg_mb_nick_check
reg_mb_email_check
reg_mb_hp_check

이중 reg_mb_id_check만 바꿔서 정상 처리되던데...
나머지 3군데는 변경하지 않아도 되는지

관리자님의 댓글

관리자 댓글의 댓글

네 4번 항목에 있는 저 부분만 변경하면 됩니다.

지티알님의 댓글

지티알

아이디를 이메일로 변경 후

회원가입 시
이름.닉네임,이메일  입력칸에서 이메일을 아이디와 다른것을 입력하여도,
실제 가입자 인증 메일은 아이디에 입력한 이메일로 전송됩니다.


회원입력 폼에서 이메일 입력자체가 필요없을듯한데...필수항목이라 제외를 어떻게 하면 될까요?

관리자님의 댓글

관리자 댓글의 댓글

본문 내용을 보면 가입폼에서 삭제하라고 되어있습니다.
1-2. 이메일 입력 부분 삭제

지티알님의 댓글

지티알 댓글의 댓글

네~~
감사합니다.

제대로 처리를 못했네요~

커뮤니티는 당분간 중단하겠습니다.
그누보드팁 목록
번호 제목
공지 그누보드 팁 자료실 공지사항
121 전체 최신글에서 특정 게시판 출력 제외하기 새글
120 메뉴 설정에서 메뉴코드 me_code 출력하기
119 특정 메뉴 색상을 다르게 설정하기
118 어느 검색 사이트에서 링크 타고 왔는지 확인하는 방법
117 에디터 입력화면 세로 높이 수정 smarteditor2, ckeditor4, cheditor5
116 오토셋(Autoset) 사용방법6 - 가상 호스트 설정 댓글2
115 네이버 소셜로그인 네아로 검수요청 신청서 작성 방법
114 파일 업로드시 파일명 변경 없이 원본 그대로 업로드
113 로그인 영역을 오른쪽에서 왼쪽으로 이동
112 1:1 문의 게시판에 새글이나 답변글 등록시 쪽지 발송하기
111 그누보드 5.3 버전 기본 메뉴 중앙 정렬하기
110 자동등록방지 캡챠(kcaptcha)코드 삭제 - 그누보드 5.3 버전
109 네아로, 네이버 소셜 로그인으로 가입시 닉네임 값에 이메일 아이디가 입력될 경우 댓글1
108 MySQL 버전 차이로 phpmyadmin 에서 DB 필드 타입 변경이 안 될 때
107 네이버 구글 검색 서브 링크
106 메인 메뉴 3차까지 추가하기
105 모바일 브라우저에서 링크 터치 하이라이트 제거 (링크 클릭 영역)
104 그누보드 5.3 기본 레이아웃 전체 가로 사이즈 변경
103 index 페이지 최신글 특정 게시판 제외하기
102 그누보드 5.2 버전과 5.3 버전 차이점
101 특정 아이피만 관리자 페이지 접근을 허용하는 방법
100 등록된 글이 없거나 페이지당 목록수보다 적어도 페이징 번호 출력하기
99 회원 가입시 닉네임 중복으로 입력할 수 있게 변경하기
98 웹호스팅 회사별 phpmyadmin 접속 링크
게시물 검색


그누스터디는 그누보드, 영카트 초보 사용자를 위한 정보를 공유합니다.

Copyright © GNUSTUDY. All rights reserved.
상단으로