CI 묻고 답하기

제목 CI 선배님들 쿠키에 대해서 질문!
글쓴이 초보프로그래머 작성시각 2015/02/12 15:54:01
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 13608   RSS
현재 개발중인 기능은,

컨트롤러 등이 로딩 되기 전에,

후크에서 브라우져에 언어를 쿠키로 구워서,

그 쿠키값에 따라서, ko 폴더에 뷰를 보여줄지, en 폴더에 뷰를 보여줄지,

판가름이 나는 기능 입니다.

근데, 문제는, post_controller_constructor (인스턴스화 직후)

인데, 이미 메인 컨트롤러 생성자가 실행 된 후에, hook 를 하더라구요.

그래서 생성자에서는 현재 get_cookie 를 하는데, 당연히 후크에서 set_cookie 를 안했기 때문에,

값이 없습니다.

그렇다고, pre_controller 쓰면, 인스턴스가 없어서 set_cookie 를 못합니다.

방법이 있을까요?ㅠㅠㅠㅠㅠ

 
 다음글 DB 커넥션 질문 입니당. (3)
 이전글 나라마다 표시되는 언어를 다르게 하고싶은데요. (3)

댓글

한대승(불의회상) / 2015/02/12 16:14:44 / 추천 0
Hook에서 CI 인스턴스가 필요하다면 get_instance() 로 가져와서 처리 하면 됩니다.
초보프로그래머 / 2015/02/12 16:25:41 / 추천 0
function setCookie() // replace setlang
    {
        $lang = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
        $lang = explode(",",$lang);
        $lang = substr($lang[0], 0,2);

        set_cookie('langSet', $lang, 0);
    }

후크입니다.

이렇게 되어있는데, 여기서

$CI =& get_instance();
$lang = $CI->$_SERVER["HTTP_ACCEPT_LANGUAGE"];

이렇게 하라는건가요? 이런건 한번도 안해봐서 감 조차 모르겠는데, 정말 죄송하지만 조금만 더 자세히 가능할까요?ㅠ

아니면 관련 api 는 어디쪽으로 들어가면 되는것인가여?
 
한대승(불의회상) / 2015/02/12 16:47:47 / 추천 0
초보프로그래머// 정확히 뭐가 문제인지 잘 모르겠네요.
쿠키를 사용하지 말고 $lang의 값을 그냥 전역변수로 넘기는게 더 나을것 같은데요.
변종원(웅파) / 2015/02/12 18:18:27 / 추천 0
쿠키로 하지 마시고 상수 선언하시면 편합니다.