password_lost.skin.php 질문 입니다. 채택완료

Copy
<?php

if (!defined('_GNUBOARD_')) exit; // 개별 페이지 접근 불가

 

// add_stylesheet('css 구문', 출력순서); 숫자가 작을 수록 먼저 출력됨

add_stylesheet('<link rel="stylesheet" href="'.$member_skin_url.'/style.css">', 0);

 

if($config['cf_cert_use'] && ($config['cf_cert_simple'] || $config['cf_cert_ipin'] || $config['cf_cert_hp'])) { ?>

    <script src="<?php echo G5_JS_URL ?>/certify.js?v=<?php echo G5_JS_VER; ?>"></script>    

<?php } ?>

 

<!-- 회원정보 찾기 시작 { -->

<div id="find_info" class="new_win<?php if($config['cf_cert_use'] != 0 && $config['cf_cert_find'] != 0) { ?> cert<?php } ?>">

    <div class="new_win_con">

        <form name="fpasswordlost" action="<?php echo $action_url ?>" onsubmit="return fpasswordlost_submit(this);" method="post" autocomplete="off">

        <input type="hidden" name="cert_no" value="">

        <h3>이메일로 찾기</h3>

        <fieldset id="info_fs">

            <p>

                회원가입 시 등록하신 이메일 주소를 입력해 주세요.<br>

                해당 이메일로 아이디와 비밀번호 정보를 보내드립니다.

            </p>

            <label for="mb_email" class="sound_only">E-mail 주소<strong class="sound_only">필수</strong></label>

            <input type="text" name="mb_email" id="mb_email" required class="required frm_input full_input email" size="30" placeholder="E-mail 주소">

        </fieldset>

        <?php echo captcha_html();  ?>

 

        <div class="win_btn">

            <button type="submit" class="btn_submit">인증메일 보내기</button>

        </div>

        </form>

    </div>

    <?php if($config['cf_cert_use'] != 0 && $config['cf_cert_find'] != 0) { ?>

    <div class="new_win_con find_btn">

        <h3>본인인증으로 찾기</h3>

        <div class="cert_btn">

        <?php if(!empty($config['cf_cert_simple'])) { ?>

            <button type="button" id="win_sa_kakao_cert" class="btn_submit win_sa_cert" data-type="">간편인증</button>

        <?php } if(!empty($config['cf_cert_hp']) || !empty($config['cf_cert_ipin'])) { ?>

            <?php if(!empty($config['cf_cert_hp'])) { ?>

            <button type="button" id="win_hp_cert" class="btn_submit">휴대폰 본인확인</button>

            <?php } if(!empty($config['cf_cert_ipin'])) { ?>

            <button type="button" id="win_ipin_cert" class="btn_submit">아이핀 본인확인</button>

            <?php } ?>

        <?php } ?>

        </div>

    </div>

    <?php } ?>

</div>

스크립트는 생략했습니다.

여기서 질문 입니다.
이메일 인증함수를 사용 안하고, xml 로 POST 요청후 Response 된 이메일과 사용자가 입력한 이메일 값이 같을 경우만 이메일주소로 비밀번호를 변경할 수 있는 이메일을 보내게 하려합니다.
request 는 대략 요런 내용 인데,
Copy
<?php

$roomNo = $_POST['room_no'];

$userName = $_POST['user_name'];

$requestData = '<?xml version="1.0"?>

                <REQUEST003>

                <ROOM_NO>' . $roomNo . '</ROOM_NO>

                <USER_NAME>' . $userName . '</USER_NAME>

                </REQUEST003>';

$url = 'http://jdream.winsult.co.kr/xml/request.html';

$ch = curl_init($url);

curl_setopt_array($ch, [

    CURLOPT_RETURNTRANSFER => true,

    CURLOPT_POST => true,

    CURLOPT_POSTFIELDS => $requestData,

    CURLOPT_HTTPHEADER => ['Content-Type: text/xml; charset=utf-8'],

]);

$result = curl_exec($ch);

    curl_close($ch);

?>

어떻게 해야 할지 감도 못잡고 있습니다. 조언을 기다 립니다.

 

답변 1개

채택된 답변
+20 포인트

password_lost.skin.php 파일은

패스워드 찾기 스킨파일이고

이후 확인을 클릭시 뒷 페이지에서 이메일 인증을 요청합니다.

해당 뒷 페이지에서 이메일 인증부분을 삭제하고

해당 url에 post로 xml데이터를 전달 후,

리턴을 받아, 그 리턴값으로 참, 거짓 유무를 결정해서

패스워드 변경 메일을 발송해주면 되겠습니다.

로그인 후 평가할 수 있습니다

답변에 대한 댓글 3개

그누위즈 님.!
답변 주셔서 감사합니다.^^
프로세스는 이해가 갑니다. 그런데,
'뒷 페이지' 라면 어떤 페이지인지요?? 혹시 password_reset.skin.php 인가요? 아닌것 같은데요...
어떤것이죠? fpasswordlost_submit 함수로 보내는건지요?
패스워드 찾기를 하게 되면 /bbs/password_lost.php 로 가서 이메일을 입력하죠..
그러면 form action 은 /bbs/password_lost2.php로 갑니다.
password_lost2.php 에 소스를 보시면 get_email_address함수로 메일을 보내게 됩니다.
여기 함수를 주석 처리 하시고 그에 관련된 영역까지 주석 처리 하신 후 만드신 소스를 넣으시면 될겁니다.

아마 그누위즈니께서 이 말을 하신것 같습니다.
그누위즈 님 , toqurk 님 고맙습니다.^^

저는 password_lost.skin.php 에서 돌아가는건줄 알고 아무리 봐도 메일 인증 절차가 안보이는데 했습니다. 제가 아직 한 참 배우는 중이라...ㅎㅎ
이제 조금 감이 왔는데 아직도 어떻게 해야 하는지는 더 시간이 걸릴듯 하네요.

진심으로 답변해 주셔서 두 분 모두 감사 드립니다.^^

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고