아이디 이메일 개별 로그인 관련 채택완료
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 / 이메일 주소 로 접속가능 합니다.
답변에 대한 댓글 8개
그 이유는 있다가 테마 변경이나 수정하실때 일일이 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() 함수에서 (를 빼버렸네요..
그런 이렇게 하면 만약 test로 아이디를 적어도 적용되고 test @ naver.com 이렇게 해도된다는 말씀이시지요? 감사합니다
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그런데 혹시 제가 한 방식으로 해서 register.skin.php에 아이디로 로그인 페이지 따로 이메일 페이지 따로 두페이지로 만들려면 다른건 다 손 봤거든요 따로따로 페이지만 만들면되는데
그럼 form을 두개를 만들어야하는건지 아님 fucnction으로 해야하는건지...
한번 해보고싶어서요^^;