기업 행사용 페이지를 제작하다, 로그인 시 한글 아이디로 로그인을 해야 할 경우가 생겨 한글아이디 로그인을 구현

1. 로그인 아이디는 '이름'

2. 암호는 '사번'

3. 이름이 중복인 경우, 사번으로 구분하여 로그인 처리

 

1. '이름'(한글) 로 로그인

로그인은 https://sir.kr/g5_skin/799 참고해서 구현하였다.

member_register_hangeul (1).zip
0.01MB

login_skin.php
member_confirm.skin.php
register_form.skin.php
register_result.skin.php
style.css

 

위의 파일을 풀면 다섯가지 파일 이 있음

이 파일들을 사용하려는 skin/member/user_skin 폴더에 덮어씌우면 됩니다.


그리고 원본파일을 한군데만 수정합니다.

bbs/login_check.php의 6행에 있는 아래 구문을



$mb_id      = escape_trim($_POST['mb_id']);
$mb_password = escape_trim($_POST['mb_password']);

(신버전은 아래와같이 들어가이있음)
$mb_id       = isset($_POST['mb_id']) ? trim($_POST['mb_id']) : '';
$mb_password = isset($_POST['mb_password']) ? trim($_POST['mb_password']) : '';




아래처럼 수정합니다.



$sql_nick = " select mb_id from {$g5['member_table']} where mb_nick = '{$_POST['mb_nick']}' ";
$row_nick = sql_fetch($sql_nick);

$mb_id = $row_nick['mb_id'];
//$mb_id      = escape_trim($_POST['mb_id']);
$mb_password = escape_trim($_POST['mb_password']);



어떤 방식인지 소스를 보면 아시겠지만 혹시 모르시는 분들을 위해 간단히 설명하자면 넘어온 별명값에 일치하는 아이디를 찾아서 로그인체크하는 방식입니다. 즉 그누보드의 기존 로그인 절차를 거의 그대로 이용합니다.




*
스킨파일에서 G5_URL, G5_BBS_URL 같은 경로에 해당하는 구문들을 g4 용으로 다 바꾸면 g4에서도 사용이 가능할 겁니다.

**
register_form.skin.php 43~50행에 아래와 같은 소스가 있습니다.

<?php
$ip_info = explode('.',$_SERVER['REMOTE_ADDR']);
$ip_str = $ip_info[0].$ip_info[1].$ip_info[2].$ip_info[3];
$ip_str = substr($ip_str,0,10);
$id_str = G5_SERVER_TIME + $ip_str;
if($w=='u')$mb_id = $member['mb_id'];
else $mb_id = "jsb".$id_str;
?>

여기서 아이디를 자동생성하는 거지요. 가입시점의 서버타임에 접속아이피를 대충 섞어서 10자리 숫자를 만들게 되어 있습니다. 그리고 앞에 임의의 접두사를 적당하게 붙여줬습니다.

현재 소스상에는 'jsb'라는 접두사를 썼는데 원하시는 단어로 바꿔도 무방합니다.

 

 

3. 이름이 중복인 경우(아이디가 중복인 경우), 암호(사번)로 회원 구분하여 로그인 처리

/bbs/login_check.php 파일 

 

$mb = get_member($mb_id);

...
...


// 회원아이디(여기선 이름)가 여러명일 경우 조건문
$sql = "select count(*) as count from {$g5['member_table']} where mb_nick = '{$_POST['mb_nick']}'";
$row = sql_fetch($sql);


if($row['count'] > 1){
	// mb_tel에 사전에 사번을 별도로 입력해두었다
    // 아이디(이름) & 사번이 모두 일치할 경우를 찾아내기
    $sql_nick = "select mb_id from {$g5['member_table']} where mb_nick = '{$_POST['mb_nick']}'  AND mb_tel = '$mb_password'";
    $row_nick = sql_fetch($sql_nick);
    $mb_id = $row_nick['mb_id'];
    $mb = get_member($mb_id);
}

 

 

이렇게 하면 끝.

+ Recent posts