영카트의 배너관리 cookie관련 질문있습니다..

영카트의 배너관리 cookie관련 질문있습니다..

QA

영카트의 배너관리 cookie관련 질문있습니다..

본문

영카트의 배너관리에서 클릭시 링크를 걸면 새창,또는 페이지이동으로

이동을 가능하게 하는 기능이있습니다.

이때에 배너이미지를 클릭하게되면 관리자->배너관리 페이지의 배너리스트에서

조회수가 1씩 증가하는데

영카트의 파일 bannerhit.php 를 보면


<?php
include_once("./_common.php");
 
if ($_COOKIE['ck_bn_id'] != $bn_id)
{
    $sql = " update {$g5['g5_shop_banner_table']} set bn_hit = bn_hit + 1 where bn_id = '$bn_id' ";
    sql_query($sql);
    // 하루 동안
    set_cookie("ck_bn_id", $bn_id, 60*60*24);
}
 
goto_url($url);
?>

 

이렇게 if ($_COOKIE['ck_bn_id'] != $bn_id) 로 쿠키값과 배너의 번호를 비교하게되는데

그누보드5에 영카트의 배너관리 부분을 붙히다보니 뭔가 어긋나는것이 있는지

이미지 클릭시 계속 카운트가 1씩 증가합니다.

아래쪽에 set_cookie로 쿠키생성은 제대로 되는데

위의 $_COOKIE['ck_bn_id'] 부분이 적용이 안되는듯한데

영카트와 그누보드의 특정 부분이 다른것이 있어서 그럴까요??

 

물론 if ($_COOKIE['ck_bn_id'] != $bn_id) 부분을

if (get_cookie("ck_bn_id") != $bn_id) 로 바꾸어서 

사용하니 정상작동은 되는데

왜 굳이 $_COOKIE['ck_bn_id']라고 하는것에 담겨있는지

그누보드5에선 $_COOKIE['ck_bn_id']로 왜 불러와지지않는지

궁굼한데 혹시 아시는분 계실까요...

 

이 질문에 댓글 쓰기 :

답변 1

영카트, 그누보드 common.lib.php 에서 get_cookie와 set_gookie 를 찾아보면 함수의 내용이 똑같습니다.

 


// 쿠키변수 생성
function set_cookie($cookie_name, $value, $expire)
{
    global $g5;
 
    setcookie(md5($cookie_name), base64_encode($value), G5_SERVER_TIME + $expire, '/', G5_COOKIE_DOMAIN);
}
 
 
// 쿠키변수값 얻음
function get_cookie($cookie_name)
{
    $cookie = md5($cookie_name);
    if (array_key_exists($cookie, $_COOKIE))
        return base64_decode($_COOKIE[$cookie]);
    else
        return "";
}

 

함수 내용을 보면 set_cookie에서 쿠키값을 base64로 encode 하기 때문에 $_COOKIE['ck_bn_id']값은 항상 $bn_id의 값과 같을 수 없습니다.

그래서 보들이윤님처럼 if ($_COOKIE['ck_bn_id'] != $bn_id) 부분을

if (get_cookie("ck_bn_id") != $bn_id) 로 바꾸어서 사용하시는게 맞는 것 같습니다.

제가 보기엔 영카트 소스 에러 같습니다.

 

답변을 작성하시기 전에 로그인 해주세요.
전체 149
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT