정보찾기 입니다. (재업) 채택완료
꽁치입니다
2년 전
조회 2,990
../skin/member/basic/password_lost.php 의 수정된 코드입니다(아래)
</p>
<p><form name="fpasswordlost" action="<?php echo $action_url ?>" onsubmit="return fpasswordlost_submit(this);" method="post" autocomplete="off"></p>
<p>////////////////////////추가된 코드////////////////////////</p>
<p> <div class="px-3 px-sm-0 py-3"></p>
<p> <p> - 계약시 방번호 와 계약자 성명을 같이 입력하시기 바랍니다.
</p>
<p> - 회원가입 시 등록하신 이메일 주소를 입력해 주세요.
</p>
<p> 해당 <strong>이메일</strong>로 <strong>아이디</strong>와 <strong>비밀번호</strong> 정보를 보내드립니다.</strong></p>
<p> </p></p>
<p> <label class="sr-only" for="mb_email">이메일<strong class="sr-only"> 필수</strong></label></p>
<p> <div class="input-group my-3"> </p>
<p> <input type="text" name="room_no" id="room_no" required class="form-control required frm_input full_input" size="30" placeholder="방번호(Room No)"></p>
<p> </div></p>
<p> </p>
<p> <div class="input-group my-3"></p>
<p> <input type="text" name="user_name" id="user_name" required class="form-control required frm_input full_input" size="30" placeholder="계약자명(User Name)"></p>
<p> </div>
////////////////////////추가된 코드 END////////////////////////</p>
<p> <div class="input-group my-3"></p>
<p> <div class="input-group-prepend"></p>
<p> <span class="input-group-text"><i class="fa fa-envelope-o" aria-hidden="true"></i></span></p>
<p> </div></p>
<p> <input type="text" name="mb_email" id="mb_email" required class="form-control required email" maxlength="100" size="30" placeholder="계약시 등록하신 이메일 "></p>
<p> <div class="input-group-append"></p>
<p> <button type="submit" id="btn_sumbit" class="btn btn-primary">인증메일 보내기</button></p>
<p> </div></p>
<p> </div></p>
<p> <div class="text-center"></p>
<p> <?php echo captcha_html(); ?></p>
<p> </div></p>
<p> </div></p>
<p> </form>
<?php
</p>
<p>$email = get_email_address(trim($_POST['mb_email']));</p>
<p> </p>
<p>if (!$email)</p>
<p> alert_close('메일주소 오류입니다.');</p>
<p> </p>
<p>$sql = " select count(*) as cnt from {$g5['member_table']} where mb_email = '$email' ";</p>
<p>$row = sql_fetch($sql);</p>
<p>if ($row['cnt'] > 1)</p>
<p> alert('동일한 메일주소가 2개 이상 존재합니다.\\n\\n관리자에게 문의하여 주십시오.');</p>
<p> </p>
<p>$sql = " select mb_no, mb_id, mb_name, mb_nick, mb_email, mb_datetime, mb_leave_date from {$g5['member_table']} where mb_email = '$email' ";</p>
<p>$mb = sql_fetch($sql);</p>
<p>if (empty($mb['mb_id']) || $mb['mb_leave_date']) {</p>
<p> alert('존재하지 않는 회원입니다.');</p>
<p>} elseif (is_admin($mb['mb_id'])) {</p>
<p> alert('관리자 아이디는 접근 불가합니다.');</p>
<p>}
?>
<?php</p>
<p>// 사용자가 입력한 room_no와 user_name을 가져옵니다.</p>
<p>$roomNo = $_POST['room_no'];</p>
<p>$userName = $_POST['user_name'];</p>
<p> </p>
<p>// POST 요청을 위한 데이터를 설정합니다.</p>
<p>$requestData = '<?xml version="1.0"?></p>
<p> <REQUEST003> </p>
<p> <ROOM_NO>' . $roomNo . '</ROOM_NO></p>
<p> <user>' . $userName . '</user></p>
<p> </REQUEST003>';</p>
<p> </p>
<p>// 보안 서버의 URL을 설정합니다.</p>
<p>$url = '<a href="http://jdream.winsult.co.kr/xml/request.html';" target="_blank" rel="noopener noreferrer">http://jdream.winsult.co.kr/xml/request.html';</a></p>
<p> </p>
<p>// POST 요청을 보냅니다.</p>
<p>$ch = curl_init($url);</p>
<p>curl_setopt_array($ch, [</p>
<p> CURLOPT_RETURNTRANSFER => true,</p>
<p> CURLOPT_POST => true,</p>
<p> CURLOPT_POSTFIELDS => $requestData,</p>
<p> CURLOPT_HTTPHEADER => ['Content-Type: text/xml; charset=utf-8'],</p>
<p>]);</p>
<p>$result = curl_exec($ch);</p>
<p>curl_close($ch);</p>
<p> </p>
<p>// 응답된 데이터를 파싱합니다.</p>
<p>$xml_data = simplexml_load_string($result);</p>
<p> </p>
<p>// 응답된 데이터에서 이메일 주소를 가져옵니다.</p>
<p>$response_email = (string) $xml_data->USER_INFO->EMAIL;</p>
<p> </p>
<p>// 사용자가 입력한 이메일 주소를 가져옵니다.</p>
<p>$user_email = $_POST['mb_email'];</p>
<p> </p>
<p>// 응답된 이메일과 사용자가 입력한 이메일이 같은지 확인합니다.</p>
<p>if ($response_email == $user_email) {</p>
<p> // 임시비밀번호 발급</p>
<p>$change_password = rand(100000, 999999);</p>
<p>$mb_lost_certify = get_encrypt_string($change_password);</p>
<p> </p>
<p>// 어떠한 회원정보도 포함되지 않은 일회용 난수를 생성하여 인증에 사용</p>
<p>$mb_nonce = md5(pack('V*', rand(), rand(), rand(), rand()));</p>
<p> </p>
<p>// 임시비밀번호와 난수를 mb_lost_certify 필드에 저장</p>
<p>$sql = " update {$g5['member_table']} set mb_lost_certify = '$mb_nonce $mb_lost_certify' where mb_id = '{$mb['mb_id']}' ";</p>
<p>sql_query($sql);</p>
<p> </p>
<p>// 인증 링크 생성</p>
<p>$href = G5_BBS_URL.'/password_lost_certify.php?mb_no='.$mb['mb_no'].'&mb_nonce='.$mb_nonce;</p>
<p> </p>
<p>$subject = "[".$config['cf_title']."] 요청하신 회원정보 찾기 안내 메일입니다.";</p>
<p> </p>
<p>$content = "";</p>
<p> </p>
<p>$content .= '<div style="margin:30px auto;width:600px;border:10px solid #f7f7f7">';</p>
<p>$content .= '<div style="border:1px solid #dedede">';</p>
<p>$content .= '<h1 style="padding:30px 30px 0;background:#f7f7f7;color:#555;font-size:1.4em">';</p>
<p>$content .= '회원정보 찾기 안내';</p>
<p>$content .= '</h1>';</p>
<p>$content .= '<span style="display:block;padding:10px 30px 30px;background:#f7f7f7;text-align:right">';</p>
<p>$content .= '<a href="'.G5_URL.'" target="_blank">'.$config['cf_title'].'</a>';</p>
<p>$content .= '</span>';</p>
<p>$content .= '<p style="margin:20px 0 0;padding:30px 30px 30px;border-bottom:1px solid #eee;line-height:1.7em">';</p>
<p>$content .= addslashes($mb['mb_name'])." (".addslashes($mb['mb_nick']).")"." 회원님은 ".G5_TIME_YMDHIS." 에 회원정보 찾기 요청을 하셨습니다.
";</p>
<p>$content .= '저희 CLUB 850 에서는 관리자라도 회원님의 비밀번호를 알 수 없기 때문에, 비밀번호를 알려드리는 대신 새로운 비밀번호를 생성하여 안내 해드리고 있습니다.
';</p>
<p>$content .= '아래에서 변경될 비밀번호를 확인하신 후, <span style="color:#ff3061"><strong>비밀번호 변경</strong> 링크를 클릭 하십시오.</span>
';</p>
<p>$content .= '비밀번호가 변경되었다는 인증 메세지가 출력되면, 홈페이지에서 회원아이디와 변경된 비밀번호를 입력하시고 로그인 하십시오.
';</p>
<p>$content .= '로그인 후에는 정보수정 메뉴에서 새로운 비밀번호로 변경해 주십시오.';</p>
<p>$content .= '</p>';</p>
<p>$content .= '<p style="margin:0;padding:30px 30px 30px;border-bottom:1px solid #eee;line-height:1.7em">';</p>
<p>$content .= '<span style="display:inline-block;width:100px">회원아이디</span> '.$mb['mb_id'].'
';</p>
<p>$content .= '<span style="display:inline-block;width:100px">변경될 비밀번호</span> <strong style="color:#ff3061">'.$change_password.'</strong>';</p>
<p>$content .= '</p>';</p>
<p>$content .= '<a href="'.$href.'" target="_blank" style="display:block;padding:30px 0;background:#484848;color:#fff;text-decoration:none;text-align:center">비밀번호 변경</a>';</p>
<p>$content .= '</div>';</p>
<p>$content .= '</div>';</p>
<p> </p>
<p>mailer($config['cf_admin_email_name'], $config['cf_admin_email'], $mb['mb_email'], $subject, $content, 1);</p>
<p> </p>
<p>run_event('password_lost2_after', $mb, $mb_nonce, $mb_lost_certify);</p>
<p> </p>
<p>alert_close($email.' 메일로 회원아이디와 비밀번호를 인증할 수 있는 메일이 발송 되었습니다.\\n\\n메일을 확인하여 주십시오.\\nCLUB 850');</p>
<p>} else {</p>
<p> // 경고 메시지를 표시합니다.</p>
<p> alert('입력하신 정보가 올바르지 않습니다.');</p>
<p>}</p>
<p>?>
댓글을 작성하려면 로그인이 필요합니다.
답변 1개
채택된 답변
+20 포인트
2년 전
결국
if ($response_email == $user_email) {
여기가 false 라는 건데, 두개의 값을 찍어서 동일한 값인지 확인해보셨을까요???
로그인 후 평가할 수 있습니다
답변에 대한 댓글 9개
�
꽁치입니다
2년 전
N
NDWEB
2년 전
alert('입력하신 정보가 올바르지 않습니다. response_email : '. $response_email .' user_email : ' . $user_email);
이렇게 찍어보고 어떻게 나오는지 알려주시겠어요?
이렇게 찍어보고 어떻게 나오는지 알려주시겠어요?
�
꽁치입니다
2년 전
네. 답변 주셔서 고맙습니다.^^
너무 늦게 확인해서 죄송해요..
해봤더니...
response_email : user_email : 1234@naver.com 요건 나오는데 여기sir 에선 블라인드를 이렇게 하는 군요
이렇게 나옵니다. 문제는 response_email 이 오지 않는 다는 거지요?
너무 늦게 확인해서 죄송해요..
해봤더니...
response_email : user_email : 1234@naver.com 요건 나오는데 여기sir 에선 블라인드를 이렇게 하는 군요
이렇게 나옵니다. 문제는 response_email 이 오지 않는 다는 거지요?
N
NDWEB
2년 전
네
$result = curl_exec($ch);
이부분 아래에
print_r($result);
exit(); 찍어보시고 화면에서 어떻게 나오는지 봐보시겠어요?
$result = curl_exec($ch);
이부분 아래에
print_r($result);
exit(); 찍어보시고 화면에서 어떻게 나오는지 봐보시겠어요?
�
꽁치입니다
2년 전
NOK E903 XML 데이터 무결성 에러 - 특정 노드의 값이 유효하지 않습니다. 20230404105402 0
이런 메세지가 나옵니다.
이런 메세지가 나옵니다.
N
NDWEB
2년 전
than5979 여기로 카톡 주세요. 같이 해결해봐요
�
꽁치입니다
2년 전
말씀 감사합니다. 이렇게 적극적으로 도와 주시는 분은 처음이라 감동 입니다.
문제점이 $response_email 이 호출되지 못해서 이런 문제가 발생 한듯 합니다.
먼저 서버관리자에게 문의를 해보고 안되면 다시 질문 드릴께요.
번거럽게 해 드려서 죄송 합니다.
그리고, 고맙습니다.^^
문제점이 $response_email 이 호출되지 못해서 이런 문제가 발생 한듯 합니다.
먼저 서버관리자에게 문의를 해보고 안되면 다시 질문 드릴께요.
번거럽게 해 드려서 죄송 합니다.
그리고, 고맙습니다.^^
�
꽁치입니다
2년 전
제가 실수로 <REQUEST> 부분에 <USER_NAME> 라고 입력해야 하는데
전체를 다시 검수를 하다가 보니 <user> 라고 되어 있길래 수정해서 실행해 보니
정상 작동 합니다.^^ 휴~
정말 고맙습니다. 왜 저부분을 놓쳤는지 모르겠네요.
에러가 나면 에러 코드를 분석해야 한다는 선배님들 말씀을 다시 한 번 새기는 시간 입니다.
NDWEB님 끝까지 도와 주셔서 고맙습니다.^^
전체를 다시 검수를 하다가 보니 <user> 라고 되어 있길래 수정해서 실행해 보니
정상 작동 합니다.^^ 휴~
정말 고맙습니다. 왜 저부분을 놓쳤는지 모르겠네요.
에러가 나면 에러 코드를 분석해야 한다는 선배님들 말씀을 다시 한 번 새기는 시간 입니다.
NDWEB님 끝까지 도와 주셔서 고맙습니다.^^
N
NDWEB
2년 전
네 다행입니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
그런데, 한결 같이 '입력하신 정보가 올바르지 않습니다.' 라는 경고만 나오고
진행이 안되네요.