질문/조언질답게시판
Extra Form
PHP PHP 7.4
CMS Rhymix

안녕하세요

질문 드립니다

 

최근에 제가 라이믹스를 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()로 진행하였더니, 기존 변수들은 이상없이 가져오더라구요


오랜만에 업그레이드를 해서 제가 놓친 것이 있을까요?

 

  • profile

    라이믹스 최신버전에서 확장자가 html로 지정된 외부페이지 기준으로

    아래의 3가지 문법 모두 정상 작동합니다.

    외부페이지의 확장자나 호출 방식에 따라 다를 수 있습니다.

     

    {Context::get('test')}

    {$_GET['test']}

    {$test}

  • profile profile

    빠른 답변 감사드립니다 기진님. 바로 변수로 출력해도 되는군요~


    일단 말씀하신대로 해보아도 작동되지 않는 것으로 확인이 되었습니다

    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

     

     

  • profile profile

    저도 궁금했던 거네요.

    저는 외부페이지에서 url에서 특정 변수값을 확인해서 캐시 갱신을 하게 했던 페이지를 구성했는데

    게시판 목록 주소에 특정값을 추가해 줄때 짧은 주소에 추가한 것은 외부페이지에서 못 읽고 긴주소에 추가한 것은 외부페이지에서 값이 확인되어 긴주소로 크롤링을 하거나 직접 브라우저에서 사용합니다.

    지식이 없다보니 이유는 모르고 그냥 그런줄 알았네요.

    라이믹스로 전환 전에 만든 외부페이지라...

  • profile profile
    우선, 이해되지 않는 부분이 있습니다.
    게시판이라면 게시판 모듈이고 외부페이지라면 페이지 모듈인데,
    게시판에 외부페이지를 어떻게 넣으신 건지...?

    웹지기님 분석처럼 짧은주소인 경우에만 작동하지 않는 것이라면
    rewrite 규칙 문제일 수 있겠다는 생각이 듭니다.
    이 부분은 라이믹스 2.0에서 완전히 갈아엎을 예정이라 지금 디버깅하는 것은 무의미하지만요.
  • profile profile

    일단, 게시판에 외부페이지를 넣은 것은 없구요

    처음엔 페이지모듈 문제라고 생각해서 게시판 모듈과 비교하던 중

    다른 것은 어떨까 하여 메인모듈, 출석체크모듈 등 여러가지 예를 들게 되었습니다

     

    위의 댓글 예시에 이어 부연 설명을 드리자면


    주소에 board 들어간 것은 게시판 모듈

    -> {$test} 작동x

    본문이 있거나 긴주소 이용시 작동o


    주소에 attendance 들어간 것은 출석체크 모듈

    -> {$test} 작동x

    긴주소 이용시 작동o


    주소에 subject 들어간 것은 페이지모듈(외부페이지)

    -> {$test} 작동x

    긴주소 이용시 작동o


    주소에 도메인만 있는 것은 페이지모듈(외부페이지), 단 메인모듈(홈페이지)로 설정됨

    -> {$test} 작동o

     

    혹시 해결방법이 있으면 좋겠지만, 없거나 힘들다면 2.0을 기다리겠습니다~

  • profile profile
    파리미터 앞에 &가 붙느냐 ?가 붙느냐 상황에 따라 다른거 같네요
    꼭 php로 파라미터를 받아야 되는것이 아니라면 js/jquery 등을 이용하여
    현재 url을 구분자 단위로 split 하여 배열화 하거나 한뒤 파라미터를 받는 방법도 있습니다.
  • profile

    조언 감사합니다^^

    이제, 사이트에서 {@test} 테스트 코드는 삭제하였습니다