아이디 => 이메일 형식으로 회원가입 및 로그인 > 그누보드5 팁자료실

그누보드5 팁자료실

아이디 => 이메일 형식으로 회원가입 및 로그인 정보

아이디 => 이메일 형식으로 회원가입 및 로그인

본문

1. lib/common.lib.php
파일에 함수 생성
 

function get_email($mb_id, $fields='*', $is_cache=false){

    global $g5;

    

    // $mb_id = preg_replace("/[^0-9a-z_]+/i", "", $mb_id);

 

    static $cache = array();

 

    $key = md5($fields);

 

    if( $is_cache && isset($cache[$mb_id]) && isset($cache[$mb_id][$key]) ){

        return $cache[$mb_id][$key];

    }

 

    $sql = " select $fields from {$g5['member_table']} where mb_id = TRIM('$mb_id') ";

 

    $cache[$mb_id][$key] = run_replace('get_member', sql_fetch($sql), $mb_id, $fields, $is_cache);

 

    return $cache[$mb_id][$key];

}

 


2.ajax.mb_id.php파일

if ($msg = valid_mb_id($mb_id))     die($msg);


 G5_LIB_PATH.'/register.lib.php' => valid_mb_id()함수 커스터마이징 
 

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 "E-mail 주소가 형식에 맞지 않습니다.";

    else

        return "";

}


3. jquery.register_form.js 파일 

reg_mb_id_check 함수 data 부분 아래와 같이 변경
 

   data: {

            "reg_mb_id": $("#reg_mb_id").val()

        },



4.login.check.php 파일
 

// $mb = get_member($mb_id);

$mb = get_email($mb_id);

다음과 같이 변경

5. member_form.php 파일

 // $mb = get_member($mb_id);

    $mb = get_email($mb_id);

다음과 같이 변경
6. root/ common.php
 

    // $member = get_member($_SESSION['ss_mb_id']);

    $member = get_email($_SESSION['ss_mb_id']);

다음과 같이 변경







update `g5_config` set `cf_admin` = '*** 개인정보보호를 위한 이메일주소 노출방지 ***' where `cf_admin` = "admin"; 

관리자도 메일 형식으로 바꿔주세요


*추가 

데이터 베이스에 mb_id 부분들은 꼭 char 255로 해주세요. 
회원디비, 게시판디비등 mb_id가 들어가는 부분들은 전부 (20)으로  되어있어서
아이디 짤려서 들어갑니다!
 

추천
16

댓글 29개

안녕하세요! 작성해주신 팁이 정말 유용합니다.
그런데, 위 코드를 사용하고 db에 mb_id데이터 형식을 varchar(20)으로 그대로 두어도 될까요?
이메일의 경우 varchar(20)을 초과할까봐서요. 프론트에서 max 20으로 막는 방법도 있겠지만, 이메일 주소에 형식을 제외한 제한을 두는건 이상하지 않을까 하여 여쭤봅니다!
안녕하세요 소중한 의견 감사합니다. 답변이 늦었네요
g5_member 의 데이터 베이스 기본을 보면, mb_email의 데이터 형식은 varchar(255)로 되어 있습니다.
말씀주신데로 varchar(20)을 그대로 두는 것 보다 (255)로 변경하는게 좋을 것 같습니다 ^.,^
와우! 감사합니다!!! 적용 잘되네요!!^^ 관리자페이지 회원관리부분에서 정보수정하는 페이지들의 get_member부분도 모두 수정해야 할것 같아요~!!
저도 최근에 다시 사용했는데
디비에 mb_id 부분은에 char 를 255 로 전부 바꿔줘야해요!
이거 안바꾸면 아이디 짤려서 들어가요~
안녕하세요!! 혹시 get_email 함수를 추가하여 get_member를 get_email로 변경하는것 말고
get_member 함수 안에 내용을 get_email로 바꿔 사용하면 안되나요??
전부 적용을 했는데요. 이메일 유효성 검사해서 계속 형식이 아니라고 나옵니다.
$reg_mb_id 찍어보면 @ 대신에 %40 이 뜨는데 왜 그런 걸까요?
20년도에 사용했던 거라 버전이 바뀌었을 수도 있고...
그런데 이메일 유효성 검사면 해당 함수만 조금 조정하면 해결될 것 같네요

(DB내) 모든 테이블에서 mb_id 컬럼을 찾는 쿼리입니다. 참고 바랍니다.
SELECT sc.TABLE_SCHEMA, sc.TABLE_NAME, sc.COLUMN_NAME, sc.COLUMN_TYPE
FROM INFORMATION_SCHEMA.COLUMNS AS sc
WHERE COLUMN_NAME='mb_id'

좋은팁이네요~감사합니다. 경로가 바뀌었네요!

update `g5_config` set `cf_admin` = '*** 개인정보보호를 위한 이메일주소 노출방지 ***' where `cf_admin` = "admin"; 

이 부분은 조금 더 알려주실 수 있을까요? 초보라서 어디서 수정하는 것인지 좀 알고싶습니다!

+ 최대한 따라해봤는데, 아래처럼 오류가 납니다.. 도움 구합니다 ㅠㅠ

f56d6cc54f2f390e078b0344db73a0e1_1708525214_7419.png

전체 2,427 |RSS
그누보드5 팁자료실 내용 검색

회원로그인

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