묻고답하기
외부페이지에서 변수 넘기기 - (해결책을 찾았습니다.)
2009.06.17 01:08
안녕하세요?
외부페이지에서 변수값을 넘기고 받는 방법을 알고 싶습니다.
php파일을 XE외부에서 직접 불렀을 때는 변수가 제대로 전달 되는데,
XE 내부에서 외부페이지로 설정한 후 불러낼때는 변수가 전달이 안됩니다.
예:
외부페이지로 호출 - 변수 전달 안됨: http://chungfamily.ffhosting.net/zbxe/?mid=segeypyo_list&strStartID=0100151003
직접 호출 - 변수 전달 됨: http://chungfamily.ffhosting.net/jokbo_segeypyo/ListSegeypyo.php?strStartID=0100151003
어떻게 하면 외부 페이지에서 변수를 전달 할 수 있는지 꼭 좀 알려 주세요.
감사합니다.
ksc
댓글 7
-
한꼬마
2009.06.17 01:20
-
늘푸른나무2
2009.06.17 01:31
답변 감사합니다.
복사해서 넣어 봤는데 에러가 나서 정말 안타깝습니다. 일단 카피해서 넣은 부분은 에러 때문에 콤멘트 처리했는데,
뭔가 방법이 있기는 있는모양이군요. 계속 연구 해봐야 겠습니다.
답변 감사합니다.
ksc -
한꼬마
2009.06.17 06:13
외부페이지 등록하실때 http://chungfamily.ffhosting.net/jokbo_segeypyo/ListSegeypyo.php 이렇게 등록하셨다면 경로를 /home/.........../ 이렇게 바꾸세요. (상대경로 텔넷으로 pwd명령으로 경로를 아실수 있을겁니다.)
그게 아니면 최상단에 지정하지 않아서 그럴겁니다.<? $strStartID=Context::get("strStartID"); ?> 를 최상단에 넣어서 확인해보세요.
-
라르게덴
2009.06.17 09:41
XE에서는 매개변수는 {Context::get('strStartID')} 이렇게 해야지 되는걸로 알고 있습니다.
{변수} 에서 <? 변수 ?> 이렇게 넘길려는 거라면 어려울수도 있을 것 같고요 ^^
-
늘푸른나무2
2009.06.17 11:37
Hancoma님, 라르게덴님 답변 감사합니다.
.<? $strStartID=Context::get("strStartID"); ?> 나 .<? $strStartID={Context::get('strStartID')};?> 를 최 상단에 넣어 봤습니다만 둘 다 에러가 나는 것으로 봐서 아마도 Context::get 함수(?)를 못찾는것 같은데 혹시 경로 문제 때문이 아닌가 하는 생각이 듭니다.
Hancoma님이 말씀하신대로 외부페이지 경로를 http://chungfamily.ffhosting.net/jokbo_segeypyo/ListSegeypyo.php로 설정하고 있었기 때문에
알려주신 대로 외부페이지 경로를 /ffrepo/chungfamily/www/jokbo_segeypyo/ListSegeypyo.php로 바꾸어 봤습니다.
( /home/.........../ 가 의미하는게 절대경로 인듯해서 XE어드민 화면에서 XE가 설치된 절대경로 /ffrepo/chungfamily/www/zbxe/ 를 참고함)그결과 역시 마찬가지로 에러가 납니다. (Context::get 함수(?)가 실행 되지않고 그냥 종료..)
이때는 또 레이아웃(모르지오님제공)도 적용되지 않았었는데 그이유는 인쿨르드 하는 파일의 경로를 상대 경로가 아니라 같이 절대 경로로 바꾸어 주었더니 레이아웃은 다시 적용 되었습니다.
따라서 외부페이지 내에서 include를 사용할 때, 페이지 등록시 절대경로 등록했을 경우 include 문에서 상대 경로를 사용하면 안 되는것 같습니다.
아 정말 머리 아픕니다. 내부 페이지로 만들면 해결 될까요? 조금만 더 연구하면 해결 될 듯도 한데 쉽지 않네요.
혹시 제가 사용한 경로가 잘못 되었는지 한번 검토해 주세요.감사합니다.
ksc참고로 구조및 주소는 아래와 같습니다.
XE 설치된 절대경로위치(XE어드민화면에서 확인): "/ffrepo/chungfamily/www/zbxe/"
홈피주소 "http://chungfamily.ffhosting.net"
트리구조 : www --- zbxe
|
|--jokbo_segeypyo
ListSegeypyo.php 에서 인쿨르드하는 파일(같은레벨) : include '/ffrepo/chungfamily/www/jokbo_segeypyo/BuildSegeypyoTable.php';
외부문서등록시 문서 위치: /ffrepo/chungfamily/www/jokbo_segeypyo/ListSegeypyo.php -
라르게덴
2009.06.17 13:40
매개변수를 임시저장시키고 불러오는 방법을 취해보세요.
$GLOBALS['abc'] = Context::get('abc');
<? echo $GLOBALS['abc']; ?>일케 하니 되네요.
-
늘푸른나무2
2009.06.17 14:30
만세!!!!!!!!!
라르게덴님, Hancoma님 정말 정말 감사합니다.!!!라르게덴님이 알려 주신대로 아래 3줄을 맨처음에 넣고 실행하니 변수가 전달이 됩니다!!!!!!!!!
<? $GLOBALS['strStartID'] = Context::get('strStartID'); ?>
<?echo $GLOBALS['strStartID'];?>
<? $strStartID=$GLOBALS['strStartID']; ?>아마도 아래 질문중에도 외부페이지 변수전달에 관한 질문들이 있었는데 그분들도 분명 감사해 할 것 같습니다.
일단 변수가 전달 되는것을 확인 했으니 작업을 계속 진행할 수 있겠습니다.
위 코드를 넣고 테스트해본 바, 당연 하겠지만 외부 페이지를 부를때는 직접 부르면 안되고 XE에서 사용하는방법을 써야 됩니다.
즉, 1) 에러: http://chungfamily.ffhosting.net/jokbo_segeypyo/ListSegeypyo.php?strStartID=0100151001
2) 성공: http://chungfamily.ffhosting.net/zbxe/?mid=segeypyo_list&strStartID=0100151002또, 1) 외부페이지 등록할때는 위치를 /ffrepo/chungfamily/www/jokbo_segeypyo/ListSegeypyo.php 와 같이 절대주소를 사용해야되고
2) 외부페이지 내에서 인쿠르드할때도 include '/ffrepo/chungfamily/www/jokbo_segeypyo/BuildSegeypyoTable.php'; 같이 써주어야 제대로 동작 하였습니다.고맙습니다.
ksc
최상단에
<? $strStartID=Context::get("strStartID"); ?>
넣어 보세요. 변수를 받을때 제로보드 외부 페이지에서는 일반 php와 같이 이용하시면 안됩니다.