테스트 사이트 - 개발 중인 베타 버전입니다

item.php에서 레벨 3이상 접근 채택완료

조자룡 4년 전 조회 5,818

카테고리 id값이 50으로 시작 되는 제품을 레벨3 이하는 접근을 못하게 할려고 하는건데..

이게 안되네요... 뭐가 잘못 되었을까요?

고수님 지도 편달 부탁 드립니다.

 

</p>

<p><?php

include_once('./_common.php');

include_once(G5_LIB_PATH.'/iteminfo.lib.php');</p>

<p>$find_ca_id = substr($ca_id, 0, 2);</p>

<p>if($member[mb_level] < 3  && $find_ca_id == 50){

    alert("접근권한이 없습니다.");

}</p>

<p>$it_id = isset($_GET['it_id']) ? get_search_string(trim($_GET['it_id'])) : '';

$it_seo_title = isset($it_seo_title) ? $it_seo_title : '';</p>

<p>$it = get_shop_item_with_category($it_id, $it_seo_title);

$it_id = $_REQUEST['it_id'] = $it['it_id'];</p>

<p>

if (! (isset($it['it_id']) && $it['it_id'])) {

    alert('자료가 없습니다.');

}</p>

<p>if( isset($row['it_seo_title']) && ! $row['it_seo_title'] ){

    shop_seo_title_update($row['it_id']);

}</p>

<p>if (!($it['ca_use'] && $it['it_use'])) {

    if (!$is_admin)

        alert('판매가능한 상품이 아닙니다.');

}</p>

<p>// 분류 테이블에서 분류 상단, 하단 코드를 얻음

$sql = " select ca_mobile_skin_dir, ca_include_head, ca_include_tail, ca_cert_use, ca_adult_use

           from {$g5['g5_shop_category_table']}

          where ca_id = '{$it['ca_id']}' ";

$ca = sql_fetch($sql);</p>

<p>

// 본인인증, 성인인증체크

if(!$is_admin) {

    $msg = shop_member_cert_check($it_id, 'item');

    if($msg)

        alert($msg, G5_SHOP_URL);</p>

<p>}</p>

<p>// 오늘 본 상품 저장 시작

    

// tv 는 today view 약자

$saved = false;

$tv_idx = (int)get_session("ss_tv_idx");

if ($tv_idx > 0) {

    for ($i=1; $i<=$tv_idx; $i++) {

        if (get_session("ss_tv[$i]") == $it_id) {

            $saved = true;

            break;

        }

    }

}</p>

<p>if (!$saved) {

    $tv_idx++;

    set_session("ss_tv_idx", $tv_idx);

    set_session("ss_tv[$tv_idx]", $it_id);

}

// 오늘 본 상품 저장 끝</p>

<p>// 조회수 증가

if (get_cookie('ck_it_id') != $it_id) {

    sql_query(" update {$g5['g5_shop_item_table']} set it_hit = it_hit + 1 where it_id = '$it_id' "); // 1증가

    set_cookie("ck_it_id", $it_id, 3600); // 1시간동안 저장

}</p>

<p>// 이전 상품보기

$sql = " select it_id, it_name from {$g5['g5_shop_item_table']}

          where it_id > '$it_id'

            and SUBSTRING(ca_id,1,4) = '".substr($it['ca_id'],0,4)."'

            and it_use = '1'

          order by it_id asc

          limit 1 ";

$row = sql_fetch($sql);

if (isset($row['it_id']) && $row['it_id']) {

    $prev_title = '이전상품 <span>'.$row['it_name'].'</span>';

    $prev_href = '<a href="'.shop_item_url($row['it_id']).'" id="siblings_prev">';

    $prev_href2 = '</a>';

} else {

    $prev_title = '';

    $prev_href = '';

    $prev_href2 = '';

}</p>

<p>// 다음 상품보기

$sql = " select it_id, it_name from {$g5['g5_shop_item_table']}

          where it_id < '$it_id'

            and SUBSTRING(ca_id,1,4) = '".substr($it['ca_id'],0,4)."'

            and it_use = '1'

          order by it_id desc

          limit 1 ";

$row = sql_fetch($sql);

if (isset($row['it_id']) && $row['it_id']) {

    $next_title = '다음 상품 <span>'.$row['it_name'].'</span>';

    $next_href = '<a href="'.shop_item_url($row['it_id']).'" id="siblings_next">';

    $next_href2 = '</a>';

} else {

    $next_title = '';

    $next_href = '';

    $next_href2 = '';

}</p>

<p>// 관리자가 확인한 사용후기의 개수를 얻음

$sql = " select count(*) as cnt from `{$g5['g5_shop_item_use_table']}` where it_id = '{$it_id}' and is_confirm = '1' ";

$row = sql_fetch($sql);

$item_use_count = $row['cnt'];</p>

<p>// 상품문의의 개수를 얻음

$sql = " select count(*) as cnt from `{$g5['g5_shop_item_qa_table']}` where it_id = '{$it_id}' ";

$row = sql_fetch($sql);

$item_qa_count = $row['cnt'];</p>

<p>if ($default['de_mobile_rel_list_use']) {

    // 관련상품의 개수를 얻음

    $sql = " select count(*) as cnt

               from {$g5['g5_shop_item_relation_table']} a

               left join {$g5['g5_shop_item_table']} b on (a.it_id2=b.it_id)

              where a.it_id = '{$it['it_id']}' and b.it_use='1' ";

    $row = sql_fetch($sql);

    $item_relation_count = $row['cnt'];

}</p>

<p>// 상품품절체크

if(G5_SOLDOUT_CHECK)

    $is_soldout = is_soldout($it['it_id'], true);</p>

<p>// 주문가능체크

$is_orderable = true;

if(!$it['it_use'] || $it['it_tel_inq'] || $is_soldout)

    $is_orderable = false;</p>

<p>if($is_orderable) {

    if(defined('G5_THEME_USE_OPTIONS_TRTD') && G5_THEME_USE_OPTIONS_TRTD){

        $option_item = get_item_options($it['it_id'], $it['it_option_subject'], '');

        $supply_item = get_item_supply($it['it_id'], $it['it_supply_subject'], '');

    } else {

        // 선택 옵션 ( 기존의 tr td 태그로 가져오려면 'div' 를 '' 로 바꾸거나 또는 지워주세요 )

        $option_item = get_item_options($it['it_id'], $it['it_option_subject'], 'div');</p>

<p>        // 추가 옵션 ( 기존의 tr td 태그로 가져오려면 'div' 를 '' 로 바꾸거나 또는 지워주세요 )

        $supply_item = get_item_supply($it['it_id'], $it['it_supply_subject'], 'div');

    }</p>

<p>    // 상품 선택옵션 수

    $option_count = 0;

    if($it['it_option_subject']) {

        $temp = explode(',', $it['it_option_subject']);

        $option_count = count($temp);

    }</p>

<p>    // 상품 추가옵션 수

    $supply_count = 0;

    if($it['it_supply_subject']) {

        $temp = explode(',', $it['it_supply_subject']);

        $supply_count = count($temp);

    }

}</p>

<p>// 스킨경로

$skin_dir = G5_MSHOP_SKIN_PATH;

$ca_dir_check = true;</p>

<p>if($it['it_mobile_skin']) {

    if(preg_match('#^theme/(.+)$#', $it['it_mobile_skin'], $match))

        $skin_dir = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1];

    else

        $skin_dir = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$it['it_mobile_skin'];</p>

<p>    if(is_dir($skin_dir)) {

        $form_skin_file = $skin_dir.'/item.form.skin.php';</p>

<p>        if(is_file($form_skin_file))

            $ca_dir_check = false;

    }

}</p>

<p>if($ca_dir_check) {

    if($ca['ca_mobile_skin_dir']) {

        if(preg_match('#^theme/(.+)$#', $ca['ca_mobile_skin_dir'], $match))

            $skin_dir = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$match[1];

        else

            $skin_dir = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/shop/'.$ca['ca_mobile_skin_dir'];</p>

<p>        if(is_dir($skin_dir)) {

            $form_skin_file = $skin_dir.'/item.form.skin.php';</p>

<p>            if(!is_file($form_skin_file))

                $skin_dir = G5_MSHOP_SKIN_PATH;

        } else {

            $skin_dir = G5_MSHOP_SKIN_PATH;

        }

    }

}</p>

<p>define('G5_SHOP_CSS_URL', str_replace(G5_PATH, G5_URL, $skin_dir));</p>

<p>$g5['title'] = $it['it_name'].' &gt; '.$it['ca_name'];

$naverpay_button_js = '';</p>

<p>include_once(G5_MSHOP_PATH.'/_head.php');

include_once(G5_SHOP_PATH.'/settle_naverpay.inc.php');</p>

<p>// 상단 HTML

echo '<div id="sit_hhtml">'.conv_content($it['it_mobile_head_html'], 1).'</div>';

?></p>

<p><?php if($is_orderable) { ?>

<script src="<?php echo G5_JS_URL; ?>/shop.js"></script>

<?php } ?></p>

<p><?php

if (G5_HTTPS_DOMAIN)

    $action_url = G5_HTTPS_DOMAIN.'/'.G5_SHOP_DIR.'/cartupdate.php';

else

    $action_url = G5_SHOP_URL.'/cartupdate.php';

?></p>

<p><div id="sit"></p>

<p>    <?php

    // 상품 구입폼

    include_once($skin_dir.'/item.form.skin.php');

    ?></p>

<p></div></p>

<p><?php

// 하단 HTML

echo conv_content($it['it_mobile_tail_html'], 1);</p>

<p>include_once(G5_MSHOP_PATH.'/_tail.php');</p>

<p>

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

답변 2개

채택된 답변
+20 포인트
세크티
4년 전

item.php에서는 $ca_id 변수가 없습니다. 아래처럼 $it 변수에 상품정보배열이 담기고 처리하셔야합니다.

</p>

<pre>
<code><?php
include_once('./_common.php');
include_once(G5_LIB_PATH.'/iteminfo.lib.php');

 
$it_id = isset($_GET['it_id']) ? get_search_string(trim($_GET['it_id'])) : '';
$it_seo_title = isset($it_seo_title) ? $it_seo_title : '';
$it = get_shop_item_with_category($it_id, $it_seo_title);
$it_id = $_REQUEST['it_id'] = $it['it_id'];</code></pre>

<p><code>$find_ca_id = substr($it['ca_id'], 0, 2);</code></p>

<p><code>if($member[mb_level] < 3 && $find_ca_id == 50){ alert("접근권한이 없습니다."); }</code></p>

<p><code>...이하생략</code></p>

<p>

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

답변에 대한 댓글 1개

조자룡
4년 전
오오 감사합니다.

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

플래토
4년 전

</p>

<p><?php</p>

<pre>
<code>if($member[mb_level] < 3  && $find_ca_id == 50){
    alert("접근권한이 없습니다.");
}</code></pre>

<p><code>//이것을</code></p>

<p> </p>

<p> </p>

<pre>
<code>if($find_ca_id == '50') {  </code>// ca_id를 substr로 나눈경우 숫자가 아닌 문자가 됩니다. 그리고
<code>    if (!($is_member && $member['mb_level'] > 3 )){
        alert("접근권한이 없습니다.");
    }</code>
}</pre>

<p>//와 같이 순서를 분리 및 변경해서 체크해보세요</p>

<p>

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

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

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

로그인