비번찾기에서 찾은 비번으로 로그인이 안됩니다. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

비번찾기에서 찾은 비번으로 로그인이 안됩니다. 정보

비번찾기에서 찾은 비번으로 로그인이 안됩니다.

본문

안녕하세요 그누 회원님들^^
도움좀 요청하고자 질문글을 올립니다.
아이디/비번찾기에서 3단계까지는 잘 넘어가고 3단계에서 새로운 비밀번호도
발급이 잘 돼고 있습니다. 그런데 문제는 새로 발급받은 비밀번호로 로그인을 시도하면
"가입된 회원이 아니거나 패스워드가 틀립니다.패스워드는 대소문자를 구분합니다." 라는
경고창이 뜨고 로그인이 안되네요..답변을 검색해봐도 속시원한 답이 없네요..ㅜㅜ
회원님들 좀 도와주세요...

password_forget.php 페이지입니다.
-------------------------------------------------------------
<?
include_once("./_common.php");

if ($member[mb_id])
{
    echo <<<HEREDOC
    <script language="javascript">
        alert("이미 로그인중입니다.");
        window.close();
        opener.document.location.reload();
    </script>
HEREDOC;
    exit;
}

$g4[title] = "회원아이디/패스워드 찾기";
include_once("$g4[path]/head.sub.php");

$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/password_forget.skin.php");

include_once("$g4[path]/tail.sub.php");

?>
-----------------------------------------------------------------------

password_forget2.php 페이지입니다.
-----------------------------------------------------------------------
<?
include_once("./_common.php");

// 토큰 생성
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
$norobot_key = substr($token, 0, rand(4,6));
set_session("ss_norobot_key", $norobot_key);

if ($_POST[pass_mb_id])
    $sql = " select mb_id, mb_password_q from $g4[member_table] where mb_id = '$_POST[pass_mb_id]' ";
else if ($_POST[mb_name] && $_POST[mb_jumin])
    $sql = " select mb_id, mb_password_q from $g4[member_table] where mb_name = '$_POST[mb_name]' and mb_jumin = '".sql_password($_POST[mb_jumin])."' ";
else if ($_POST[mb_name] && $_POST[mb_email])
    $sql = " select mb_id, mb_password_q from $g4[member_table] where mb_name = '$_POST[mb_name]' and mb_email = '$_POST[mb_email]' ";
else
    alert("올바른 방법으로 접근하여 주십시오.");

$mb = sql_fetch($sql);
if (!$mb[mb_id])
    alert("입력하신 내용으로는 회원정보가 존재하지 않습니다.");
else if (is_admin($mb[mb_id]))
    alert("관리자 아이디는 접근 불가합니다.");

$g4[title] = "패스워드 찾기 2단계";
include_once("$g4[path]/head.sub.php");

// 081022 : CSRF 보안 결함으로 인한 코드 수정
$mb[mb_password_q] = get_text($mb[mb_password_q]);

$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/password_forget2.skin.php");

include_once("$g4[path]/tail.sub.php");
?>
--------------------------------------------------------------------------

password_forget3.php 페이지입니다.
--------------------------------------------------------------------------
<?
include_once("./_common.php");

/*
$wr_key = trim($_POST[wr_key]);
if (!($wr_key && $wr_key == get_session('ss_norobot_key'))) {
    alert("정상적인 접근이 아닌것 같습니다.");
}
*/

$key = get_session("captcha_keystring");
if (!($key && $key == $_POST[wr_key])) {
    session_unregister("captcha_keystring");
    alert_close("정상적인 접근이 아닌것 같습니다.");
}
/*
$sql = " select mb_id, mb_nick, mb_password_a, mb_email from $g4[member_table] where mb_id = '$_POST[pass_mb_id]' ";
$mb = sql_fetch($sql);
if (!$mb[mb_id])
    alert("존재하지 않는 회원입니다.");
else if ($mb_password_a !== $mb[mb_password_a])
    alert("패스워드 분실 시 답변이 틀립니다.");
else if (is_admin($mb[mb_id]))
    alert("관리자 아이디는 접근 불가합니다.");
*/

/*가입시 아이피 체크하여 본인인증
$sql = " select mb_id, mb_nick, mb_password_a, mb_email, mb_ip from $g4[member_table] where mb_id = '$_POST[pass_mb_id]' ";
$mb = sql_fetch($sql);
if (!$mb[mb_id])
    alert("존재하지 않는 회원입니다.");
else if ($_SERVER['REMOTE_ADDR'] != $mb[mb_ip] )
    alert("회원가입한 IP가 틀립니다.");
*/  
  
  
$g4[title] = "패스워드 찾기 3단계";
include_once("$g4[path]/head.sub.php");

// 난수 발생
list($usec, $sec) = explode(" ", microtime());
$seed =  (float)$sec + ((float)$usec * 100000);
srand($seed);
$randval = rand(4, 6);

$change_password = substr(md5(get_microtime()), 0, $randval);
$sql = " update $g4[member_table]
            set mb_password = '".sql_password($change_password)."'
          where mb_id = '$mb[mb_id]' ";
sql_query($sql);

$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";
include_once("$member_skin_path/password_forget3.skin.php");

include_once("$g4[path]/tail.sub.php");
?>
-------------------------------------------------------------------------------

댓글 전체

발급된 비밀번호하고 디비 저장된값하고 비교해보세요~
예를 들어 비밀번호발급이 1234로 됬으면
디비에는 1234를 password 함수로 바뀐값이 저장 되어있어야 합니다.
일단 이정도밖에는 답변을 드릴수가...
phpmyadmin 이란 툴이라든지 그런걸써서 디비서 직접 확인해보셔야 합니다.
아이디하고 비번이 다르다고 나오니 우선 진짜 다른지부터 확인해보셔야 합니다.
아제아제님 phpmyadmin g4_member에서 확인하는건가요?
거기보면 mb_password칸에 숫자와영문자 조합으로 패스워드가 표시되고 있는데요
*6A03967F249B8C20F4952FC059BF7F905B004814 이런식으로요 저기가 맞는건지 몰겠네요..
해결봤습니다ㅋㅋ
클라이언트 요청으로 비번찾기를 간략히 수정했엇는데
password_forget3.php 페이지에서
/*
$sql = " select mb_id, mb_nick, mb_password_a, mb_email from $g4[member_table] where mb_id = '$_POST[pass_mb_id]' ";
$mb = sql_fetch($sql);
if (!$mb[mb_id])
    alert("존재하지 않는 회원입니다.");
else if ($mb_password_a !== $mb[mb_password_a])
    alert("패스워드 분실 시 답변이 틀립니다.");
else if (is_admin($mb[mb_id]))
    alert("관리자 아이디는 접근 불가합니다.");
*/
이부분을 주석으로 묶엇더니 오류났던 거였네요...에궁..

아제아제님 관심가져주시고 답변해주셔서 감사드립니다.^^
날씨는 춥지만 따뜻한 오후시간 되세요...
전체 22 |RSS
그누4 질문답변 내용 검색

회원로그인

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