Extra Form
PHP PHP 7.2
CMS XpressEngine

현재 외부페이지로 순수 php를 사용하고 있습니다.

 

단순히 XE에서 테스트용? 으로 사용하려다가 외부 페이지로 갈피를 잡게 되었습니다.

 

XE에서 어떠한 폼에서 nick이란 함수에 값을 입력받아 result라는 외부페이지로 index.php?mid=result&nick=입력값

이렇게 전달하고 있습니다.

 

근데, XE에서 URL은 노출되지만, PHP에서 받을 방법을 모르겠네요.

도움 부탁드립니다.

  • ?
    <?php
    $name = $_GET['name'];
    echo $name;
    ?>

    이런식으로..$_GET['파라미터이름'] 으로 get 파라미터를 받을 수 있는데..이거 말씀하시는거 맞는건지..ㅠ
  • ? profile
    흠냐 순수 php에서는 그 방법이 유효하지만, XE에 임포트 되어 있는 PHP파일이에요 ㅇ~ㅇ

    메뉴 생성시에 외부 페이지로 만들었고, 그 외부페이지에 outage.php 를 생성해서 그 mid값에 get 파라미터를 넘겼어요
  • profile profile
    $name = Context::get("name");
    echo $name;

    이게 외부파일에서도 적용될지는 모르겠네요;;
  • profile ?
    $nick = Context::get('nick');
    echo "{$nick}";

    음..
  • ? profile
    @리버스 둘다 적용이 안되는걸 보아하니 뭔가 이유가 있는거 같기도 하네요
  • profile ?
    그럼 get대신에 post로 해서..
  • profile
    get은 모르겠지만 post의 경우 xe외부페이지로 불러온 php에서도 잘 동작합니다.
  • profile ?
    정보추!
  • profile profile
    아.. POST로 불러오는 경우에는 잘 작동하나보군요.

    한번 테스트 해봐야겠어요
  • ?
    // POST 변수 받기
    while(list($key, $val) = each($_POST)) {
    ${$key} = $val;
    }


    // GET 변수 받기
    while(list($key, $val) = each($_GET)) {
    ${$key} = $val;
    }

    이거 쓰면 가능하지 않을까요?
  • ? profile
    이게 바로 악명높은 register_globals 수법이죠. 모든 변수를 전역변수로!!!
    안 하는 것이 신상에 좋습니다 ㅋㅋㅋ
  • profile profile
    저렇게 되면... (눈앞깜
  • profile ?
    흐익!
  • profile
    외부페이지가 단순히 include되고 있는 건지, 아니면 외부페이지로 넘기면서 GET 파라미터를 초기화하고 있는 건지 (예: outpage.php?mid=abcd 식으로 불러온다거나...), 아니면 외부페이지를 curl로 가져오고 있는 건지... 등등에 따라 달라질 수 있습니다. 혹시 외부페이지 소스가 XE 템플릿 문법으로 취급되고 있다면 $_GET, $_POST 등의 초전역변수는 사용이 불가능할 수도 있습니다.

    $_GET
    $_POST
    Context::getRequestVars();
    등을 찍어보세요.
  • profile profile
    외부페이지가 XE 설정에 의해 include 되고 있으며, 그 값은 직접 index.php?mid=result&nick=입력값 으로 가져오고 있습니다.

    또한, 입력창에 의해서도 nick값을 입력할 수 있습니다.

    여러가지 방법을 시도하고 있는데, 잘 모르겠네요