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> 로 감싸야 합니다.
원문 상으로도 에러가 날 이유가 전혀 없습니다.
말씀하신 것처럼 에러가 났다면, 그 에러의 원인을 다른 곳에서 찾아봐야 하지 않을까 싶습니다.
해결은 되었지만, 원인을 모르니 뭔가 찝찝하잖아요.
전체적인 소스를 보고 실행을 해보면서 오류를 봐야 정확한 원인을 찾을 수 있을 것 같네요.