영카트 비회원 주문 조회 시 비밀번호 없이 주문번호로만 조회 할 수 있을까요?

매출이 오르면 내리는 수수료! 지금 수수료센터에서 전자결제(PG)수수료 비교견적 신청해 보세요!
영카트 비회원 주문 조회 시 비밀번호 없이 주문번호로만 조회 할 수 있을까요?

QA

영카트 비회원 주문 조회 시 비밀번호 없이 주문번호로만 조회 할 수 있을까요?

답변 1

본문

질문은 아래 있습니다.

 

orderinquiry.php 입니다

<?php
include_once('./_common.php');
if (G5_IS_MOBILE) {
    include_once(G5_MSHOP_PATH.'/orderinquiry.php');
    return;
}
define("_ORDERINQUIRY_", true);
$order_info = array();
$request_pwd = isset($_POST['od_pwd']) ? $_POST['od_pwd'] : '';
$od_pwd = get_encrypt_string($request_pwd);
$od_id = isset($_POST['od_id']) ? safe_replace_regex($_POST['od_id'], 'od_id') : '';
// 회원인 경우
if ($is_member)
{
    $sql_common = " from {$g5['g5_shop_order_table']} where mb_id = '{$member['mb_id']}' ";
}
else if ($od_id && $od_pwd) // 비회원인 경우 주문서번호와 비밀번호가 넘어왔다면
{
    if( defined('G5_MYSQL_PASSWORD_LENGTH') && strlen($od_pwd) === G5_MYSQL_PASSWORD_LENGTH ) {
        $sql_common = " from {$g5['g5_shop_order_table']} where od_id = '$od_id' and od_pwd = '$od_pwd' ";
    } else {
        $sql_common = " from {$g5['g5_shop_order_table']} where od_id = '$od_id' ";
        $order_info = get_shop_order_data($od_id);
        if (!check_password($request_pwd, $order_info['od_pwd'])) {
            run_event('password_is_wrong', 'shop', $order_info);
            alert('주문이 존재하지 않습니다.');
            exit;
        }
    }
}
else // 그렇지 않다면 로그인으로 가기
{
    goto_url(G5_BBS_URL.'/login.php?url='.urlencode(G5_SHOP_URL.'/orderinquiry.php'));
}
// 테이블의 전체 레코드수만 얻음
$sql = " select count(*) as cnt " . $sql_common;
$row = sql_fetch($sql);
$total_count = $row['cnt'];
// 비회원 주문확인시 비회원의 모든 주문이 다 출력되는 오류 수정
// 조건에 맞는 주문서가 없다면
if ($total_count == 0)
{
    if ($is_member) // 회원일 경우는 메인으로 이동
        alert('주문이 존재하지 않습니다.', G5_SHOP_URL);
    else // 비회원일 경우는 이전 페이지로 이동
        alert('주문이 존재하지 않습니다.');
}
$rows = $config['cf_page_rows'];
$total_page  = ceil($total_count / $rows);  // 전체 페이지 계산
if ($page < 1) { $page = 1; } // 페이지가 없으면 첫 페이지 (1 페이지)
$from_record = ($page - 1) * $rows; // 시작 열을 구함

// 비회원 주문확인의 경우 바로 주문서 상세조회로 이동
if (!$is_member)
{
    if( defined('G5_MYSQL_PASSWORD_LENGTH') && strlen($od_pwd) === G5_MYSQL_PASSWORD_LENGTH ) {
        $sql = " select od_id, od_time, od_ip from {$g5['g5_shop_order_table']} where od_id = '$od_id' and od_pwd = '$od_pwd' ";
        $row = sql_fetch($sql);
    } else if( $order_info ){
        if (check_password($request_pwd, $order_info['od_pwd'])) {
            $row = $order_info;
        }
    }
    if ($row['od_id']) {
        $uid = md5($row['od_id'].$row['od_time'].$row['od_ip']);
        set_session('ss_orderview_uid', $uid);
        goto_url(G5_SHOP_URL.'/orderinquiryview.php?od_id='.$row['od_id'].'&uid='.$uid);
    }
}
$g5['title'] = '주문내역조회';
include_once('./_head.php');
?>
<!-- 주문 내역 시작 { -->
<div id="sod_v">
    <?php
    $limit = " limit $from_record, $rows ";
    include "./orderinquiry.sub.php";
    ?>
    <?php echo get_paging($config['cf_write_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&page="); ?>
</div>
<!-- } 주문 내역 끝 -->
<?php
include_once('./_tail.php');

 

1. 영카트 비회원 주문 조회 시 비밀번호 없이 주문번호로만 조회 할 수 있을까요?

 

만약 수정을 한다면 어떻게 하면 좋을지 알려주시면 정말 감사하겠습니다 선배님들

또한 다른 간단한 방법이 있으면 알려주시면 감사하겠습니다.

 

글 봐주셔서 정말 감사합니다. 

이 질문에 댓글 쓰기 :

답변 1

보안성때문에 잘못하다가 털릴수도 있는데 그래도 괜찮을까요?

비회원으로 가정하에 설명 드릴게요
예를들어서 a111222 라고 주문번호가 있어요 그럼 누군가 악의적으로 그대로 다 하나씩 매칭해서 주문번호를 통해 접속했어요 아님 우연히 접속을 하던지.. 그러면 딱 접속은 됐는데 아직 주문하기전단계라서 뭐 갯수를 변경하던지 일부 카드내역을 보려고 꼼수를 부리던지 이러한 상황이 여러 상황이 생길 수 있어서 왠만하면 그대로 사용하면 좋구요
근데 좀 방식을 단순하게 하고 싶으시면 주문번호, 성명, 이메일, 휴대폰번호를 통해서 확인할수있게 하는게 좋구요 비회원이라 해도 휴대폰번호인증후에 주문서를 확인할수있거나 아니면 이메일을 통해서 확인 할 수 있게 한게 나을것 같아요

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 0
© SIRSOFT
현재 페이지 제일 처음으로