비번찾기에서 찾은 비번으로 로그인이 안됩니다. 정보
비번찾기에서 찾은 비번으로 로그인이 안됩니다.본문
안녕하세요 그누 회원님들^^
도움좀 요청하고자 질문글을 올립니다.
아이디/비번찾기에서 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 함수로 바뀐값이 저장 되어있어야 합니다.
일단 이정도밖에는 답변을 드릴수가...
제가 php쪽은 전혀 문외한 이라서요,,
좀 더 알려주시면 감사하겠습니다.^^

아이디하고 비번이 다르다고 나오니 우선 진짜 다른지부터 확인해보셔야 합니다.
거기보면 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("관리자 아이디는 접근 불가합니다.");
*/
이부분을 주석으로 묶엇더니 오류났던 거였네요...에궁..
아제아제님 관심가져주시고 답변해주셔서 감사드립니다.^^
날씨는 춥지만 따뜻한 오후시간 되세요...

저도 딴작업으로 삽질하고 있어서 답변을 늦게봤네요;;
해결되셨다니 다행입니다 ^^