CI 묻고 답하기

제목 세션,상수 사용관련해서 조언 구합니다.
카테고리 CI 2, 3
글쓴이 반타 작성시각 2018/03/21 10:43:28
댓글 : 8 추천 : 0 스크랩 : 0 조회수 : 18197   RSS

현재 ci 컨트롤러에서 세션,상수를 만들고 있습니다.  

ci controller, views 단에서는 생성한 세션,상수등을 잘 불러올수 있는데

ci외부페이지? 표현이 맞으려나 모르겠으나

예를들어 www/test/test.php  에서 ci controller 에서 생성한 세션이나 상수를 불러오질 못하고 있습니다.

(ci와 외부페이지 documentRoot 는 동일합니다. )

 

test.php 에선

<?PHP

session_start();

echo $_SESSION['test']; //세션

echo TEST;                // 상수

?>

이런식으로 불러오고 있구요.

사정상 외부페이지에서 ci에서 생성한 세션이나 상수를 불러와야하는데 읽어오질 못하고 있네요.

조언 부탁드립니다.

 다음글 외부에서 curl 로 보네는 데이터를 받고 싶습니다. (4)
 이전글 404 에러 이유 (2)

댓글

빛그림 / 2018/03/21 10:50:08 / 추천 0

CI스럽게...

컨트롤러에서 세션 라이브러리로 세션을 사용하시고, 뷰에서 세션을 가져오시면 편합니다.

반타 / 2018/03/21 10:54:18 / 추천 0

@빛그림

네 현재 ci 컨트롤러,뷰에서는 세션불러오는데 전혀 문제가 없습니다. ci외부페이지에서  불러오지 못해서 문제입니다..

kaido / 2018/03/21 11:48:32 / 추천 0

 세션은 공유가 안됩니다.

CI3 이하에서는 네이티브 세션을 쓰지 않기 때문에 공유가 안됩니다.

CI4부터 네이티브 세션이 사용 가능 합니다.

상수는 define 을 사용하기에 큰 문제가 없을거라 생각 했습니다만...

CI의 로더를 거치지 않는다면 당연히 사용이 안됩니다.

CI의 컨트롤에서 벗어난 부분에서 CI를 사용 하겠다는 말과 같습니다.

/test/test.php

이거는 CI하고 전혀 상관없는 일반 PHP 파일 만드신것 입니다.

 

반타 / 2018/03/21 11:56:20 / 추천 0

@kaido 

네 맞습니다. 일반 php파일입니다. 혹시나 방법이 있나 싶어서 조언구한거였습니다.

현재는 쿠키로 대체중이긴합니다.

빛그림 / 2018/03/21 12:01:50 / 추천 0

아... 그러면 PHP의 네이티브 세션을 이용하실수 있습니다.

그때 참고한 내용을 지금 다시 찾기는 힘들지만 https://github.com/bcit-ci/CodeIgniter/wiki/Native-session 이걸 보시면 될듯 하네요.

저도 2년전쯤 네이티브 세션이 필요해서 사용했던 적이 있었네요... 

한대승(불의회상) / 2018/03/21 12:35:30 / 추천 0

ci 3.0 부터는 기본적으로 php 네이티브 세션을 사용 합니다.

아래 처럼 테스트 해보세요.

// ci controller
class Test extends CI_Controller{
  public function tsession() {
    $_SESSION['test'] = 1234;
  }
}
// 일반 php

echo $_SESSION['test'];

 

이제다시 / 2018/03/21 12:44:09 / 추천 0

도메인이 같을 경우에 session_id 가 달라서 발생하는 문제입니다. 

 

CI 의 경우 session_id 를 sess_cookie_name 로 자체 생성하여 세션을 사용하기 때문에

 

일반적인 PHP는 PHPSESSID 를 이용하여 session 파일에 접근하는데

session_id 를 ci 에서 생성한 ID 로 변경하신 후에 사용하시면 $_SESSION 변수에 접근가능합니다.

반타 / 2018/03/21 12:52:05 / 추천 0

@빛그림 / 한대승 / 이제다시 

많은 분들 답변 정말 감사합니다. 참조하여 작업해보겠습니다.