외부페이지 get 파라미터 관련
CMS/프레임워크 | Rhymix 1.9 |
---|---|
개발 언어 | PHP 7.4 |
안녕하세요
질문 드립니다
최근에 제가 라이믹스를 1.9.9.8로 업그레이드 하였습니다 (centos 아파치 기반)
기존에는 외부페이지에서 Context::get('변수명') 이나 $_GET["변수명"] 으로 현재 url 파라미터 정보를 가져올 수 있었는데 업그레이드 후에는 작동이 되지 않아 해결방법이 있는지 여쭙니다
위 현상은 게시판 모듈에서는 나타나지 않으며, 외부페이지라도 메인모듈로 설정하면 정상작동하는 것으로 확인되었습니다
테스트는
관리자 화면 사이트 메뉴에서 외부페이지 생성 후 외부문서위치를 설정하는 것으로 진행하였습니다
"도메인/해당외부페이지mid주소?test=변수" url로 접속하여
{@
print_r('test');
print_r(Context::get('test'));
print_r($_GET["test"]);
}
<?
print_r('test');
print_r(Context::get('test'));
print_r($_GET["test"]);
?>
위와 같이 코딩되어 있는 html파일과 php파일을 외부문서위치로 지정하여 테스트하였으나 url 변수는 가져올 수 없었고,
require_once($_SERVER['DOCUMENT_ROOT']."/config/config.inc.php") 를 추가해본다거나,
'도메인/파일위치/테스트파일명' 으로 직접 접속하여 확인하여도 역시 작동하지 않았습니다
혹시나 하여
Context::getall()로 진행하였더니, 기존 변수들은 이상없이 가져오더라구요
오랜만에 업그레이드를 해서 제가 놓친 것이 있을까요?
댓글 7
라이믹스 최신버전에서 확장자가 html로 지정된 외부페이지 기준으로
아래의 3가지 문법 모두 정상 작동합니다.
외부페이지의 확장자나 호출 방식에 따라 다를 수 있습니다.
{Context::get('test')}
{$_GET['test']}
{$test}
빠른 답변 감사드립니다 기진님. 바로 변수로 출력해도 되는군요~
일단 말씀하신대로 해보아도 작동되지 않는 것으로 확인이 되었습니다
https://0gichul.com/test?test=1234
html로 지정된 외부페이지입니다
{Context::get('test')}
{$_GET['test']}
{$test}
0
-> 0만 출력
다만, 게시판 모듈에서도 본문이 있으면 되고, 본문이 없으면 안되는 현상을 발견했습니다
※{$test}작동시 왼쪽 상단에 1234표시
https://0gichul.com/board/38079452?test=1234
=> 1234 출력o
https://0gichul.com/board?test=1234
=> 1234 출력x
또, 본문이 없어도 index.php?mid로 시작하는 주소에서는 작동하구요
https://0gichul.com/index.php?mid=attendance&test=1234
=> 1234 출력o
https://0gichul.com/attendance?test=1234
=> 1234 출력x
본문에 썼던대로 메인화면은 외부페이지이지만 메인모듈로 설정했기 때문에 작동하고
https://0gichul.com?test=1234
=> 1234 출력o
메인모듈이 아닌 일반 외부페이지는 작동하지 않구요
https://0gichul.com/subject?test=1234
=> 1234 출력x
저도 궁금했던 거네요.
저는 외부페이지에서 url에서 특정 변수값을 확인해서 캐시 갱신을 하게 했던 페이지를 구성했는데
게시판 목록 주소에 특정값을 추가해 줄때 짧은 주소에 추가한 것은 외부페이지에서 못 읽고 긴주소에 추가한 것은 외부페이지에서 값이 확인되어 긴주소로 크롤링을 하거나 직접 브라우저에서 사용합니다.
지식이 없다보니 이유는 모르고 그냥 그런줄 알았네요.
라이믹스로 전환 전에 만든 외부페이지라...
게시판이라면 게시판 모듈이고 외부페이지라면 페이지 모듈인데,
게시판에 외부페이지를 어떻게 넣으신 건지...?
웹지기님 분석처럼 짧은주소인 경우에만 작동하지 않는 것이라면
rewrite 규칙 문제일 수 있겠다는 생각이 듭니다.
이 부분은 라이믹스 2.0에서 완전히 갈아엎을 예정이라 지금 디버깅하는 것은 무의미하지만요.
일단, 게시판에 외부페이지를 넣은 것은 없구요
처음엔 페이지모듈 문제라고 생각해서 게시판 모듈과 비교하던 중
다른 것은 어떨까 하여 메인모듈, 출석체크모듈 등 여러가지 예를 들게 되었습니다
위의 댓글 예시에 이어 부연 설명을 드리자면
주소에 board 들어간 것은 게시판 모듈
-> {$test} 작동x
본문이 있거나 긴주소 이용시 작동o
주소에 attendance 들어간 것은 출석체크 모듈
-> {$test} 작동x
긴주소 이용시 작동o
주소에 subject 들어간 것은 페이지모듈(외부페이지)
-> {$test} 작동x
긴주소 이용시 작동o
주소에 도메인만 있는 것은 페이지모듈(외부페이지), 단 메인모듈(홈페이지)로 설정됨
-> {$test} 작동o
혹시 해결방법이 있으면 좋겠지만, 없거나 힘들다면 2.0을 기다리겠습니다~
꼭 php로 파라미터를 받아야 되는것이 아니라면 js/jquery 등을 이용하여
현재 url을 구분자 단위로 split 하여 배열화 하거나 한뒤 파라미터를 받는 방법도 있습니다.
조언 감사합니다^^
이제, 사이트에서 {@test} 테스트 코드는 삭제하였습니다