g5_admin_url 토큰 생성이 안되는 문제.. 해결은 했는데 이유를 모르겠어요.

g5_admin_url 토큰 생성이 안되는 문제.. 해결은 했는데 이유를 모르겠어요.

QA

g5_admin_url 토큰 생성이 안되는 문제.. 해결은 했는데 이유를 모르겠어요.

본문

카페24 웹호스팅에서 사용한 데이터와 DB를 그대로 가비아 가상서버호스팅에 계정 생성 후 복원하였습니다.그런데 복원후 관리자에서 폼 전송시 "토큰 정보가 올바르지 않습니다" 라며 토큰 생성이 안되서 이래저래 확인해보니..

1. 일단 소스 원문은 아래와 같습니다. head.sub.php 공통 파일 상단에 아래 소스가 있습니다.
<script>
var g5_url       = "<?php echo G5_URL ?>";
var g5_bbs_url   = "<?php echo G5_BBS_URL ?>";
var g5_is_member = "<?php echo isset($is_member)?$is_member:''; ?>";
var g5_is_admin  = "<?php echo isset($is_admin)?$is_admin:''; ?>";
var g5_is_mobile = "<?php echo G5_IS_MOBILE ?>";
var g5_bo_table  = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca       = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor    = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";
<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>

</script>

이게 원문인데요.
관리자 페이지에서 폼전송시 admin.js에서 get_ajax_token()로 토큰을 받아오는데.. 
url: g5_admin_url+"/ajax.token.php", 이런식으로 토큰값을 호출하고 있더라구요.

근데 토큰값을 계속 못 받아와서..
url: "/adm/ajax.token.php", 이렇게 URL을 수정해주니 토큰값을 잘 받아오더라구요.
때문에 g5_admin_url 이 값이 제대로 불려와지지 않는다는걸 알았는데요.

<script>
var g5_url       = "<?php echo G5_URL ?>";
var g5_bbs_url   = "<?php echo G5_BBS_URL ?>";
var g5_is_member = "<?php echo isset($is_member)?$is_member:''; ?>";
var g5_is_admin  = "<?php echo isset($is_admin)?$is_admin:''; ?>";
var g5_is_mobile = "<?php echo G5_IS_MOBILE ?>";
var g5_bo_table  = "<?php echo isset($bo_table)?$bo_table:''; ?>";
var g5_sca       = "<?php echo isset($sca)?$sca:''; ?>";
var g5_editor    = "<?php echo ($config['cf_editor'] && $board['bo_use_dhtml_editor'])?$config['cf_editor']:''; ?>";
var g5_cookie_domain = "<?php echo G5_COOKIE_DOMAIN ?>";
var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";
</script>
<script>
<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>

</script>

이렇게 따로 <script></script>를 넣어줘야지만
g5_admin_url 이 값이 제대로 작동하더라구요.

이런경우는 처음 봐서 왜 이런건지 도통 이해가 안되서요.

의문1. 카페24 에서 모든 데이터와 디비를 그대로 퍼와서 가비아에 가져왔는데 왜 오류가 나는것인지..
의문2. 왜<script></script>로 나눠야지만 g5_admin_url 이게 작동하는건지..

혹시 왜 그런건지 아시는 분 계실까요?

이 질문에 댓글 쓰기 :

답변 3

g5_admin_url  이건 자바스크립트 변수라서 그렇습니다.

소스내에 자바스크립트를 선언 또는 작성시 <script></script> 로 감싸야 합니다.

var g5_shop_url = "<?php echo G5_SHOP_URL; ?>";

<?php if(defined('G5_IS_ADMIN')) { ?>
var g5_admin_url = "<?php echo G5_ADMIN_URL; ?>";
<?php } ?>

다른 자바스크립트 변수는 이상이 없는데..
g5_shop_url 이것과 g5_admin_url 의 차이점은 php로 감쌓느냐 여부인데..
이 부분이 뭔가 때문에 그런걸까요?

<?php if(defined('G5_IS_ADMIN')) { ?> 이건 G5_IS_ADMIN 이 선언되어 있느냐 라고 묻는 것 입니다.
config.php 나 dbconfig.php 파일에 G5_IS_ADMIN 이 선언되어 있는지를 먼저확인하세요

원문 상으로도 에러가 날 이유가 전혀 없습니다.

말씀하신 것처럼 에러가 났다면, 그 에러의 원인을 다른 곳에서 찾아봐야 하지 않을까 싶습니다.

해결은 되었지만, 원인을 모르니 뭔가 찝찝하잖아요.

전체적인 소스를 보고 실행을 해보면서 오류를 봐야 정확한 원인을 찾을 수 있을 것 같네요.

저도 원문을 손 안대도 많은 사이트가 잘 작동을 했는데, 가비아 가상서버로 옮긴 이후 토큰 에러가나서 이래저래 땅굴 파다가.. 저기서 오류가 난다는걸 알게되었어요. 근데 <script></script> 태그를 나눠주니까 오류가 안나더라구요. 이유를 모르겠어요..ㅠ

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

회원로그인

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