제목 | 세션,상수 사용관련해서 조언 구합니다. | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 반타 | 작성시각 | 2018/03/21 10:43:28 |
|
|||
현재 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
|
반타
/
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
@빛그림 / 한대승 / 이제다시 많은 분들 답변 정말 감사합니다. 참조하여 작업해보겠습니다. |
CI스럽게...
컨트롤러에서 세션 라이브러리로 세션을 사용하시고, 뷰에서 세션을 가져오시면 편합니다.