채택완료

shop/orderformupdate.php 내용에서 변수 관련 질문입니다.

Copy
<?phpinclude_once('./_common.php');include_once(G5_LIB_PATH.'/mailer.lib.php'); if(($od_settle_case != '무통장' && $od_settle_case != 'KAKAOPAY') && $default['de_pg_service'] == 'lg' && !$_POST['LGD_PAYKEY'])    alert('결제등록 요청 후 주문해 주십시오.'); // 장바구니가 비어있는가?if (get_session("ss_direct"))    $tmp_cart_id = get_session('ss_cart_direct');else    $tmp_cart_id = get_session('ss_cart_id'); if (get_cart_count($tmp_cart_id) == 0)// 장바구니에 담기    alert('장바구니가 비어 있습니다.\\n\\n이미 주문하셨거나 장바구니에 담긴 상품이 없는 경우입니다.', G5_SHOP_URL.'/cart.php'); $error = "";// 장바구니 상품 재고 검사$sql = " select it_id,                ct_qty,                it_name,                io_id,                io_type,                ct_option           from {$g5['g5_shop_cart_table']}          where od_id = '$tmp_cart_id'            and ct_select = '1' ";$result = sql_query($sql);for ($i=0; $row=sql_fetch_array($result); $i++){    // 상품에 대한 현재고수량    if($row['io_id']) {        $it_stock_qty = (int)get_option_stock_qty($row['it_id'], $row['io_id'], $row['io_type']);    } else {        $it_stock_qty = (int)get_it_stock_qty($row['it_id']);    }    // 장바구니 수량이 재고수량보다 많다면 오류    if ($row['ct_qty'] > $it_stock_qty)        $error .= "{$row['ct_option']} 의 재고수량이 부족합니다. 현재고수량 : $it_stock_qty 개\\n\\n";} if($i == 0)    alert('장바구니가 비어 있습니다.\\n\\n이미 주문하셨거나 장바구니에 담긴 상품이 없는 경우입니다.', G5_SHOP_URL.'/cart.php'); if ($error != ""){    $error .= "다른 고객님께서 {$od_name}님 보다 먼저 주문하신 경우입니다. 불편을 끼쳐 죄송합니다.";    alert($error);}$i_price     = (int)$_POST['od_price'];$i_send_cost  = (int)$_POST['od_send_cost'];$i_send_cost2  = (int)$_POST['od_send_cost2'];$i_send_coupon  = (int)$_POST['od_send_coupon'];$i_temp_point = (int)$_POST['od_temp_point'];

 

안녕하세요. 저의 지식 수준으로는 이해가 안되는 부분이 있어 질문드립니다!

우선 shop/orderformupdate.php파일에서

처음부터 49번 줄까지의 내용을 발췌하였습니다.

 

제가 궁금한것은

가장 마지막 부분에

Copy
$error .= "다른 고객님께서 {$od_name}님 보다 먼저 주문하신 경우입니다. 불편을 끼쳐 죄송합니다.";
 

이부분에서 바로 {$od_name} <-- 이부분인데요

orderformupdate.php 파일은 orderform.php 에서 폼을 입력 받고 포스트로 값을 넘겨서 

그 값들로 최종 적으로 order 데이터베이스에 넣는 역할로 알고 있습니다.

 

그런데

제가 궁금해 사는 47줄 부분의 변수는 

바로 밑줄인 51번대 줄의 변수 와 달리 

포스트로 넘겨 받은 값도 없이 그냥 바로 변수가 사용되네요.

 

그러니까...제가 궁금한 것을 간단하게 요약하자면

현재 orderformupdate.php 에서 처음으로 $od_name 이 사용 되는 부분 이전에

$od_name 의 값을 할당해주는 부분이 없으나 

$od_name 을 사용되고 있고, 실제로 이는 정상적으로 표기가 되고 있습니다.

 

그래서 저는 저것이 궁금한 것이 포스트로 넘겨 받아서(자동으로?) 값을 표기하는 것인지

아니면 숨겨진 곳에서 $od_name에  값을 할당해서 해당 php파일에는 보이지 않는 것인지 궁금합니다.

 

479번대 줄만 봐도

$od_email         = get_email_address($od_email);

$od_name          = clean_xss_tags($od_name);

$od_tel           = clean_xss_tags($od_tel);

$od_hp            = clean_xss_tags($od_hp);

단순히 이렇게 변수 할당이 되어있는데요

그 윗줄들에서 $od_email 이나 od_name 등등 전혀 변수에 값을 할당하는 구문들이 없습니다.

 

어디서 값이 할당되고 있는 것인가요? 너무 궁금합니다.

 

(혹은  $_POST['od_name']; 이렇게 쓰지 않고 그냥 $od_name 이렇게만 써도 자동으로 값을 받는 건가요?, 만약 그렇다면 어떤 곳은 POST를 사용하고 어떤 곳은 그냥 사용하는데 이유도 궁금하네요..)

 

 

 

 

 

|

답변 1개

채택된 답변
+20 포인트

네 아마 말씀대로 $od_name 를 바로 받아서 사용하여서 그런 경우일거 같습니다.

영카트를 보셔서 아시겠지만 영카트 에서 form 값을 받을떄 post를 사용안하고 그냥 변수값을 받아서

처리하는것이 상당수 많습니다.

 

common.php를 보시면요

Copy
// PHP 4.1.0 부터 지원됨// php.ini 의 register_globals=off 일 경우@extract($_GET);@extract($_POST);@extract($_SERVER);

 

이렇게 되어있는데요..

구지 앞에 post란값을 안써도 post로 받아서 처리 됩니다.

도움이 되셨는지요 ^^

 

 

 

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