묻고답하기
외부페이지 질문입니다. ㅠㅠ
2013.01.27 14:44
외부페이지에서 php를 사용하는 방법을 모르겠습니다.
다른 답변에서 얻은 힌트 그대로
<?PHP
$logged_info = Context::get("logged_info");
if($logged_info){
echo $logged_info->nick_name."님 로그인 되었습니다";
} else {
echo "로그인을 먼저 하십시요";
}
?>
이렇게 적용을 시켜 보았는데요...
Fatal error: Class 'Context' not found in ~ ?
라는 계속 에러가 나옵니다. 물론 로그인 한 상태에서요 설정에 문제가 있는건지..
문법이 바뀐건지 잘 모르겠습니다.
외부페이지에서 php쓰는 방법을 알고 싶습니다.
댓글 3
-
송동우
2013.01.27 15:00
-
XE비기너
2013.01.27 18:00
답변 감사합니다. ^^ 알려주신대로 복사 붙여넣기 했더니(test) 그대로 읽어서 이렇게 나오네요 ㅠㅠ define('__ZBXE__', true); require_once('./config/config.inc.php'); //경로 잘 잡을 것 $oContext = &Context::getInstance(); $oContext->init(); $logged_info = Context::get('logged_info'); if($logged_info) { 로그인 되었을 때 내용 } else { 로그인 안외었을때 내용 } //외부페이지 모듈설정을 하고 외부페이지에서 config.inc.php 경로도 확인해했습니다. ㅠㅠ 계속된 질문 죄송합니다. 설정이나 다른 곳에 문제가 있는 걸까요?? -
송동우
2013.01.27 18:20
php 선언했나요?
약은 약사에게 진료는 의사에게 라는 말이 있듯이
php는 php가 먹히는 환경에서 작동합니다.....
코드를
<?php
?>
사이에 넣어야 됩니다.....
-
XE비기너
2013.01.27 18:41
아... 그렇군요... ㅎㅎ;; 송동우님 덕분에 php적용하는 방법을 배웠습니다. ^^ 그런데.. 로그인을 해도 로그인 되지 않았다고 뜨는 건 왜 그런건가요???<?php define('__ZBXE__', true); require_once('../config/config.inc.php'); $oContext = &Context::getInstance(); $oContext->init(); $logged_info = Context::get('logged_info'); if($logged_info) { echo "로그인 되었을 때 내용"; } else { echo "로그인 안되었을 때 내용"; } ?> 이렇게 적용해 보았습니다. 로그인을 여부와 관계없이 로그인 되지 않았다고 하는데 왜 그런걸까요??? ㅠㅠ;; logged_info에 값이 할당되지 않은 걸까요?? -
송동우
2013.01.27 18:44
경로 잘 잡혔나 확인해보세요 -
XE비기너
2013.01.27 19:12
require_once('../config/config.inc.php'); ->에서 에러가 안나오는 걸로 해당 경로는 맞춘걸로 판단했고요.. 로그인 여부와 관계없이 로그인 안되었다고는 나오지만 메시지가 뜨는 걸로 페이지모듈경로도 잡혀있다고 판단했습니다...ㅠㅠ;; 제 생각에 혹시 오류가 있나요?? -
송동우
2013.01.27 19:32
테스트 해밨는데 이상없이 잘 작동합니다...... 무엇을 잘못해서 원하는 대로 결과가 안나오는지 잘 살펴보시기 바랍니다. -
XE비기너
2013.01.27 19:49
감사합니다. 어떻게든 해결해 보겠습니다!! ㅠㅠ -
XE비기너
2013.01.27 21:48
계속 알아보다가 페이지모듈 경로를 절대경로로 설정하면 변수가 전달되지 않을 수도 있다는 글을 읽었습니다.
제가 마침 절대경로로 설정했는데요, 혹시 이것이 문제가 되었나 싶습니다.
그런데..또.. .상대경로의 정확한 설정법을 잘 모르겠습니다.
우선 제 웹서버의 외부 문서설정 창 설명을 보면,
외부문서의 위치를 입력해주세요.
/path1/path2/sample.php 와 같이 절대경로나 ../path2/sample.php와 같은 상대경로 모두 사용가능합니다.
http://url/sample.php 와 같이 사용하면 해당 페이지를 웹으로 전송 받아 출력 하게 됩니다.
현재 XE가 설치된 절대경로는 다음과 같습니다.
/free/home/kyg82p/html
라고 되어있습니다.
이전에는 www.kyg82p.com/pages/odoctest.php 라고 절대경로에 url전체를 붙여서 적용을 했었습니다.
송동우님의 도움으로 php를 외부문서에서 활용하는 방법을 배울 수 있었는데, 역시 변수가 전달되지 않았나 싶습니다.
그래서 상대경로로 바꾸어 보려고 애를 써보았는데,
../page/odoctest.php 나
/free/home/kyg82p/html/pages/odoctest.php 로 설정을 하면 페이지모듈에 적용시켰던 레이아웃까지 출력이 되지 않았습니다.
단순히 경로가 잘못된 것이면, 레이아웃은 나오고 content부분이 빌 줄 알았는데 말이죠...(ㅠㅠ);; <- 실제로 위와 다르게 적용하면 예상대로 레이아웃만 나옵니다;;;;
상대경로를 잘못 설정한 건지.. 상대경로를 잘 설정한 거면 왜 레이아웃까지 안나오는 건지 모르겠습니다... 파고들면 파고들수록 미궁속으로.... ㅠㅠ
외부페이지는 html기준으로 /pages/odoctest.php 입니다.
http://www.xpressengine.com/qna/20469068