주문완료페이지 url직접입력(od_id, uid 포함)으로 접속할 때 접근 막기
본문
주문완료시 orderformupdate.php 에서 orderinquiryview.php?od_id=주문번호&uid=세션값 페이지로 이동 시켜주는 경로를 수정해주고
// goto_url(G5_SHOP_URL.'/orderinquiryview.php?od_id='.$od_id.'&uid='.$uid);
goto_url(G5_SHOP_URL.'/ordercomplete.php?od_id='.$od_id.'&uid='.$uid);
주문 완료되면 상세내역으로 바로 넘어가는게 아니라 ordercomplete 로 넘어가게 만들었습니다...
그런데 직접 url에 주문번호, 세션값 넣고 이동시 접속이 되는데 이걸 막기 위해서는 어떻게 처리를 해야할까요...??ㅠㅠㅠㅠㅠ
orderinquiryview 페이지에 있는 걸 일단 가져와보긴 했는데...
include_once('./_common.php');
// 불법접속을 할 수 없도록 세션에 아무값이나 저장하여 hidden 으로 넘겨서 다음 페이지에서 비교함
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);
if (!$is_member) {
if (get_session('ss_orderview_uid') != $_GET['uid'])
alert("직접 링크로는 접속이 불가합니다.", G5_SHOP_URL);
}
$sql = "select * from {$g5['g5_shop_order_table']} where od_id = '$od_id' ";
if($is_member && !$is_admin)
$sql .= " and mb_id = '{$member['mb_id']}' ";
$od = sql_fetch($sql);
if (!$od['od_id'] || (!$is_member && md5($od['od_id'].$od['od_time'].$od['od_ip']) != get_session('ss_orderview_uid'))) {
alert("조회하실 주문서가 없습니다.", G5_SHOP_URL);
}
$g5['title'] = '주문완료';
이런식으로 가져왔는데... 제가 구현하고싶은건
무조건 주문서작성에서 넘어와야지만 페이지접속이 접속이 가능하고
직접 url에 주문번호랑 uid 값을 넣어도 접속이 불가능하게... 하고싶습니다..ㅠㅠㅠ
!-->!-->
답변 1
token 자체가 구분자인데
또다른 구분자를 두고 싶으신경우
주문서 페이지에서 order id 와 연결 토큰값(임의의 값)을 생성해서
넘기는 시점에 DB에 저장을 하시고 (이때 db는 임의의 테이블을 새로 생성해야할겁니다.)
페이지에서는 그 저장된 정보를 order_id기준으로 불러서 토큰(저장된 임의의값)이 일치할때만
진행되고 아니면 이전페이지나 초기페이지로 넘겨버리면 될겁니다.
답변을 작성하시기 전에 로그인 해주세요.