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

본문 바로가기
전체검색

아이디비번찾기

그누보드 팁

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

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

페이지 정보

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

본문

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

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



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. 이메일 입력 부분 삭제

지티알님의 댓글

지티알 댓글의 댓글

네~~
감사합니다.

제대로 처리를 못했네요~

로그인 후 댓글을 남겨주세요.
그누보드 팁 목록
번호 제목
공지 그누보드 팁 자료실 공지사항
109 네이버 구글 검색 서브 링크 새글
108 회원 가입시 관리자에게 문자 발송하기
107 메인 메뉴 3차까지 추가하기
106 모바일 브라우저에서 링크 터치 하이라이트 제거 (링크 클릭 영역)
105 그누보드 5.3 기본 레이아웃 전체 가로 사이즈 변경
104 index 페이지 최신글 특정 게시판 제외하기
103 그누보드 5.2 버전과 5.3 버전 차이점
102 특정 아이피만 관리자 페이지 접근을 허용하는 방법
101 등록된 글이 없거나 페이지당 목록수보다 적어도 페이징 번호 출력하기
100 회원 가입시 닉네임 중복으로 입력할 수 있게 변경하기
99 웹호스팅 회사별 phpmyadmin 접속 링크
98 게시판 wr_id 값 초기화
97 비회원도 추천, 비추천 가능하게
96 그누보드 5.3 기본 레이아웃에서 우측 aside 영역 삭제하기
95 투표 참가 인원 닉네임으로 출력
94 자동등록방지(kcaptcha) 캽챠 음성 안내 삭제하기 - 그누보드 5.3
93 스마트 에디터 글쓰기 textarea 높이 수정하기
92 썸네일 이미지 출력할 때 여백 없이 사용하기
91 문자열 글자 자르기 cut_str 함수
90 로그인 로그아웃했을 때 특정 페이지로 이동
89 메뉴 설정 회원 레벨별로 다르게 출력하기 댓글2
88 관리자 페이지 메뉴 추가하는 방법
87 게시판 조회수 새로고침 할 때마다 증가시키는 방법
86 인기 검색어 DB에 저장하지 않기
게시물 검색


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

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