l

admin/visit_list.php에서 에러가 발생합니다.

· 2013-04-23 (화) 08:53:18 · 2031 · 1
관리자 페이지에서 visit_list.php를 접속하면 다음과 같은 자바스크립트 에러가 보입니다.
[code]
SCRIPT438: 개체가 'datepicker' 속성이나 메서드를 지원하지 않습니다.
visit_list.php, 줄 147 문자 5
[/code]
문제가 발생하는 곳은 visit.sub.php의 다음입니다.
[code]
$(function(){
$("#fr_date, #to_date").datepicker({ changeMonth: true, changeYear: true, dateFormat: "yy-mm-dd", showButtonPanel: true, yearRange: "c-99:c+99", maxDate: "+0d" });
});
[/code]
jQuery의 datepicker가 실행되지 않는다는 이야기인데요, plugin/jquery-ui/datepicker.php파일은 이상이 없었고 그 원인을 찾아보니 head.sub.php 파일에 있었습니다. 73라인을 보면
[code]
<? if (!defined('G4_IS_ADMIN')) { echo $config['cf_add_script']; } ?>
[/code]
이렇게 되어 있어 어드민이 접속하는 경우 $config['cf_add_script']에 추가된 스크립트가 먹히지 않습니다. 따라서 어드민페이지 visit_list.php에서 자바스크립트 오류가 납니다.

해결책은 <?php echo $config['cf_add_script'];?> 이렇게 수정하면 되겠지만 혹 어드민일 경우 해킹의 소지를 위해 코드를 적용하지 않도록 하지 않았나 싶네요.

따라서 다음과 같은 방법을 제안합니다:
먼저 head.sub.php의 다음의 코드를 찾아
[code]
<? if (!defined('G4_IS_ADMIN')) { echo $config['cf_add_script']; } ?>
[/code]
다음으로 수정합니다.
[code]
<? if (!defined('G4_IS_ADMIN') || defined('G4_ADMIN_ADD_SCRIPT')) { echo $config['cf_add_script']; } ?>
[/code]
그리고 visit.sub.php파일을 열어 다음의 코드를 찾아
[code]
include_once(G4_LIB_PATH.'/visit.lib.php');
[/code]
다음을 추가합니다.
[code]
define('G4_ADMIN_ADD_SCRIPT', true);
[/code]
이렇게 하면 어드민페이지도 문제가 없을 것같고 일반 접속시에도 관리자가 접속하더라도 add_script 코드가 실행되지 않게 됩니다.
|

댓글 1개

말씀해주신대로 수정했더니..

관리자모드 접속자 집계 메뉴에서 문제가되었던 스크립트 오류가 사라졌습니다.

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

버그신고

4,191건

  문의게시판을 이용해 주세요 :) https://sir.kr/co_qa  

+
분류 제목 글쓴이 날짜
13-04-30
13-04-30
13-04-30
13-04-29
13-04-29
13-04-29
13-04-27
13-04-27
13-04-27
13-04-26
13-04-26
13-04-25
13-04-24
13-04-24
13-04-23
13-04-23
13-04-23
13-04-22
13-04-21
13-04-19