비회원 주문조회 내용변경이요... 채택완료
비회원 주문조회를
주문번호와 비밀번호를
주문자 이름과 전화번호로 변경할려 합니다.
수정한 파일 login.skin.php 내용중 전송을 od_id 에서 od_name, od_pwd에서 od_tel 로 변경하고
orderinquiry.php 에서 get과 sql 변경하는데 잘 안되네요...
sql 변경 부탁드립니다.
안전과 상관없이 즉석에서 상품선택 주문후 이름으로 조회를 구현할려고 하는겁니다.
실제로 웹쇼핑 하는거 아닙니다.
답변 2개
다음의 부분을 참고해보시겠어요..
orderinquiry.php
$od_name = isset($_GET['od_name']) ? trim($_GET['od_name']) : '';
$od_tel = isset($_GET['od_tel']) ? trim($_GET['od_tel']) : '';
// SQL - 전화번호는 하이픈 제거하여 비교
$od_tel_clean = preg_replace('/[^0-9]/', '', $od_tel);
$sql = "SELECT * FROM {$g5['g5_shop_order_table']}
WHERE od_name = '$od_name'
AND REPLACE(REPLACE(REPLACE(od_tel, '-', ''), ' ', ''), '.', '') = '$od_tel_clean'
AND od_id LIKE '{$g5['time_ymd']}%'
ORDER BY od_time DESC
LIMIT 1";
login.skin.php
<input type="text" name="od_name" placeholder="주문자명" required>
<input type="text" name="od_tel" placeholder="전화번호 (01012345678)" required>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
[code]
<?php
include_once('./_common.php');
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(G5_MSHOP_PATH.'/_head.php');
?>
<div id="sod_v">
<p id="sod_v_info">주문서번호 링크를 누르시면 주문상세내역을 조회하실 수 있습니다.</p>
<?php
$limit = " limit $from_record, $rows ";
include G5_MSHOP_PATH.'/orderinquiry.sub.php';
?>
<?php echo get_paging($config['cf_mobile_pages'], $page, $total_page, "{$_SERVER['SCRIPT_NAME']}?$qstr&page="); ?>
</div>
<?php
include_once(G5_MSHOP_PATH.'/_tail.php');
[/code]