아이디 이메일 개별 로그인 관련

아이디 이메일 개별 로그인 관련

QA

아이디 이메일 개별 로그인 관련

본문

form을 두개로 만들어서 하닌까 skin/register.form.skin.php로 안넘어가네요

그럼 form을 하나로 만들어서 해야하나요? 하나로 할려면 어떻게 적용해야하나요?

 

bbs/register.php


$register_action_url = G5_BBS_URL.'/register_form.php';

include_once($member_skin_path.'/register.skin.php');

$register_email_action_url = G5_BBS_URL.'/register_form_skin.email.php';

include_once($member_skin_path.'/register.skin.php');

 

bbs/ register.form.php

 

$register_action_url = G5_BBS_URL.'/register_form.php';

include_once($member_skin_path.'/register.skin.php');

$register_email_action_url = G5_BBS_URL.'/register_form_skin.email.php';

include_once($member_skin_path.'/register.skin.php');

 

skin/member/basic/register.skin.php

 

 <form name="fregister" id="fregister" action="<?php echo $register_action_url ?>" onsubmit="return fregister_submit(this);" method="POST" autocomplete="off">

 

<input type="submit" style="width:49%; height:70px"class="btn_submit" value="ID Login ">

 

<form name="fregister" id="fregister" action="<?php echo $register_email_action_url?>" onsubmit="return fregister_submit(this);" method="POST" autocomplete="off">

 

<input type="submit" style="width:49%; height:70px"class="btn_submit" value="Email Login ">
</form>
</form> 

이 질문에 댓글 쓰기 :

답변 1

bbs/login_check.php 

 

여신후

 

아래 소스 제거


$mb = get_member($mb_id);
 
// 가입된 회원이 아니다. 비밀번호가 틀리다. 라는 메세지를 따로 보여주지 않는 이유는
// 회원아이디를 입력해 보고 맞으면 또 비밀번호를 입력해보는 경우를 방지하기 위해서입니다.
// 불법사용자의 경우 회원아이디가 틀린지, 비밀번호가 틀린지를 알기까지는 많은 시간이 소요되기 때문입니다.
if (!$mb['mb_id'] || !check_password($mb_password, $mb['mb_password'])) {
    alert('가입된 회원아이디가 아니거나 비밀번호가 틀립니다.\\n비밀번호는 대소문자를 구분합니다.');
}

 

아래 소스 추가


// 회원 정보를 얻는다.
function get_email$mb_email , $fields='*')
{
    global $g5;
 
    return sql_fetch(" select $fields from {$g5['member_table']} where mb_email = TRIM('$mb_email ') ");
}

if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $mb_id)) {
    $mb = get_member($mb_id);
    if (!$mb['mb_id'] || !check_password($password, $mb['mb_password'])) {
       alert('회원ID 가 틀리거나 비밀번호가 일치하지 않습니다.');
    }
} else {
    $mb = get_email($mb_id);
    if (!$mb['mb_email'] || !check_password($password, $mb['mb_password'])) {
        alert('이메일 주소가 틀리거나 비밀번호가 일치하지 않습니다.');
    }
}

 

이렇게 하시면 굳이 스킨수정하실 필요없이 ID / 이메일 주소 로 접속가능 합니다.

감사합니다 이렇게 해도 괜찮은거 같습니다
그런데 혹시 제가 한 방식으로 해서 register.skin.php에 아이디로 로그인 페이지 따로 이메일 페이지 따로 두페이지로 만들려면 다른건 다 손 봤거든요 따로따로 페이지만 만들면되는데
그럼 form을 두개를 만들어야하는건지 아님 fucnction으로 해야하는건지...
한번 해보고싶어서요^^;

오히려 그렇게 하면 소스가 더 복잡해지고 힘들어집니다 간단하게 위 소스를 사용하시는게 제일 나을꺼에요.
그 이유는 있다가 테마 변경이나 수정하실때 일일이 form 랑 이리저리 다 뜯어야되는 불편하죠..
그래서 위 소스를 쓰시면 딱히 수정할 필요도 없습니다. ^^

예 감사합니다

그런데 적용하닌까

syntax error, unexpected T_VARIABLE, expecting '(' in /home/tnhands/public_html/board/bbs/login_check.php on line 18
이런 에러가 뜨는데 왜이런가요?

옆에가 18줄 입니다  function get_email$mb_email , $fields='*') 
{
    global $g5;
    return sql_fetch(" select $fields from {$g5['member_table']} where mb_email = TRIM('$mb_email ') "); 
}
if (!preg_match("/([0-9a-zA-Z_-]+)@([0-9a-zA-Z_-]+)\.([0-9a-zA-Z_-]+)/", $mb_id)) {
    $mb = get_member($mb_id);
    if (!$mb['mb_id'] || !check_password($password, $mb['mb_password'])) {
      alert('ID you have entered does not match any account.(忘记帐号?).\\n or The password you have entered incorrect.(你似乎在另一台设备上登录了 TIMEPLACE。我们将向你发送 8 位数登录密码.)');
    }
} else {
    $mb = get_email($mb_id);
    if (!$mb['mb_email'] || !check_password($password, $mb['mb_password'])) {
        alert('Email you have entered does not match \\n or The password you have entered incorrect.(你似乎在另一台设备上登录了 TIMEPLACE。我们将向你发送 8 位数登录密码.)'); 
    }
}

아 죄송합니다.
function get_email($mb_email , $fields='*')
{
    global $g5;

    return sql_fetch(" select $fields from {$g5['member_table']} where mb_email = TRIM('$mb_email ') ");
}

이겁니다. 모르고 get_email() 함수에서 (를 빼버렸네요..

답변을 작성하시기 전에 로그인 해주세요.
전체 109
QA 내용 검색

회원로그인

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