테스트 사이트 - 개발 중인 베타 버전입니다

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

· 5년 전 · 7369 · 30

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` = 'admin@test.com' where `cf_admin` = "admin"; 

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


*추가 

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

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 30개

감사합니다
안녕하세요! 작성해주신 팁이 정말 유용합니다.
그런데, 위 코드를 사용하고 db에 mb_id데이터 형식을 varchar(20)으로 그대로 두어도 될까요?
이메일의 경우 varchar(20)을 초과할까봐서요. 프론트에서 max 20으로 막는 방법도 있겠지만, 이메일 주소에 형식을 제외한 제한을 두는건 이상하지 않을까 하여 여쭤봅니다!
@ㄱ소진 안녕하세요 소중한 의견 감사합니다. 답변이 늦었네요
g5_member 의 데이터 베이스 기본을 보면, mb_email의 데이터 형식은 varchar(255)로 되어 있습니다.
말씀주신데로 varchar(20)을 그대로 두는 것 보다 (255)로 변경하는게 좋을 것 같습니다 ^.,^
4년 전
@koreanleo 넵 답변 감사합니다^^ 덕분에 잘 적용했습니다.
@영앤코딩 고생하셨습니다 ^.,^
와우! 감사합니다!!! 적용 잘되네요!!^^ 관리자페이지 회원관리부분에서 정보수정하는 페이지들의 get_member부분도 모두 수정해야 할것 같아요~!!
@위드컴 저도 최근에 다시 사용했는데
디비에 mb_id 부분은에 char 를 255 로 전부 바꿔줘야해요!
이거 안바꾸면 아이디 짤려서 들어가요~
안녕하세요!! 혹시 get_email 함수를 추가하여 get_member를 get_email로 변경하는것 말고
get_member 함수 안에 내용을 get_email로 바꿔 사용하면 안되나요??
@귿귿 연관되어 있는 파일들과 관계성을 다 맞춰주시면 가능할 것 같습니다 :)
이메일 인증을 사용하는데 아이디를 이메일로 하면 바로 인증메일이 가는지요?
감사합니다

게시글 목록

번호 제목
24318
24317
24315
24309
24294
24293
24277
24262
24260
24253
24251
24236
24233
24228
24226
24221
24214
24203
24201
24199
24196
24195
24194
24192
24191
24187
24185
24183
24172
24168