XE_PATH_ already defined 에러 문의
CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 8.3 |
<b>Warning</b>: Constant _XE_PATH_ already defined in <b>/www/common/constants.php</b> on line <b>151</b><br /> {"success":true,"data":"1:숫자,2:1479,3:53,4:191,5:192,6:173,7:0,8:0,9:0,0:0,A:0,B:0,C:0,D:0,E:0,F:0,G:0,H:0,I:0,J:0,K:0,L:0,M:0,N:0,O:0,P:0,Q:0,R:0,S:0,T:0,U:0,V:0,W:0,X:0,Y:0,Z:0","type":"private"}
위와같은 에러가 발생합니다.
_XE_PATH_ 정의가 여러번 되었다고 하는데 레이아웃이나 애드온에서 정의 되었을 가능성이 클까요?

톰캣
Lv. 11
시대의 흐름에 뒤떨어지지 않도록 아주 천천히지만 노력하고 있습니다.
댓글 11
aaa.model.php, bbb.addon.php, ccc.class.php 등 일반적인 모듈, 애드온, 위젯을 구성하는 파일들은 뻔하잖아요? 그 구조를 벗어나는 엉뚱한 php 파일이 굴러다니는 곳을 먼저 의심해 보세요. 예를 들면 pr_favorite 위젯이라든지... pr_favorite 위젯이라든지... ㅎㅎ
if(!defined("__XE__")) exit();
로 하니 아예 작동을 안해버리고(에러는 안남)
if (!defined('_XE_PATH_')) {
define('_XE_PATH_', '/www/');
}
와 같이해보면 될까요?
혹시 DB에 따라서 _XE_PATH_ already defined 이 에러가 날 수 도 있고 안날 수 도 있을까요?
maria db vs mysql
리눅스 커널도 동일하고
아파치 버전도 동일하고
다른건 DB만 다르긴합니다.
사실상 동일한코드인데 작동 미작동 차이가 있어서요.
라이믹스 설정이나 php.ini에서 에러를 숨기도록 해 놓은 서버라면 안 나오겠죠.
치명적인 오류가 아닌 워닝이기 때문에 숨기면 그냥 넘어갑니다.
if(!preg_match('/'.$_SERVER['HTTP_HOST'].'/', $_SERVER['HTTP_REFERER']))
{
print json_encode(array('success' => false, 'data' => 'ERROR_REFERER'));
die();
}
define('__XE__', TRUE);
define('_XE_PATH_', str_replace('widgets/pr_favorite/updateMyMenu.php', '', str_replace('\\', '/', __FILE__)));
require _XE_PATH_ . 'config/config.inc.php';
$oContext = Context::getInstance();
$oContext->init();
$success = false;
$data = '';
이렇게 _XE_PATH_를 똑같이 선언해버린게 문제인건가보네요 _XE_PATH_를 다른이름으로 교체해야할것 같은 느낌
chdir(dirname(dirname(__DIR__)));
require 'common/autoload.php';
Context::init();
나머지 부분에서 _XE_PATH_를 쓰는 것은 그대로 둬도 될 거예요.
감사합니다!!!
메뉴 즐겨찾기 할 수 있는 나름 고급 기능의 위젯입니다. 근데 이게 위젯이 아닌 모듈로 만들어졌다면 이런일이 더 없이 않았을까 싶네요