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

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

· 5년 전 · 7368 · 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개

@풍운 아마 해당부분은 코드를 조금 수정해야할 것 같습니다.
@koreanleo 아 그렇군요...감사합니다
전부 적용을 했는데요. 이메일 유효성 검사해서 계속 형식이 아니라고 나옵니다.
$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'

@나눔앤 감사합니다 :)

1년 전
좋은팁입니다~
감사합니다.

@ㅐ늑대ㅐ 도움이되셨다니 다행이네요 :)

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

update `g5_config` set `cf_admin` = 'admin@test.com' where `cf_admin` = "admin"; 

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

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

@2히히히 

update `g5_config` set `cf_admin` = 'admin@test.com' where `cf_admin` = "admin"; 
이건 데이터 베이스에서 query문 으로 작성하셔야합니다~

 

게시글 목록

번호 제목
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