CI 묻고 답하기

제목 코드이그나이터 세션 관련 질문입니다.
카테고리 CI 2, 3
글쓴이 브레인토스트 작성시각 2017/03/16 15:08:54
댓글 : 7 추천 : 0 스크랩 : 0 조회수 : 16316   RSS

오랜만에 질문드립니다..

개발환경을 맥으로 옮기면서 몇 가지 이상한 오류를 찾앗는데 해결이 안됩니다..

일단 로컬 루트 아래에 CI프로젝트가 여러개 있습니다.

그중에서 세션을 사용하는 곳은 두 곳입니다.

하나는 세션1 프로젝트, 하나는 세션2 프로젝트구요.

config파일의 내용 중 세션 부의 내용은

 

$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session';
$config['sess_save_path'] = null;
$config['sess_expiration'] = 7200;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
$config['sess_regenerate_destroy'] = FALSE;

 

이런식으로 동일합니다.

그런데 세션1 프로젝트에서 로그인을 하면 로그인 함수에서 var_dump를 찍어보면 정상적으로 세션이 생성되는데

로그인 처리 후에 로그인 세션을 찍어보면 널이 뜨면서 기존의 로그인 화면으로 돌아옵니다. 원래 다른 화면으로 가야하죠..

그러니까 즉, 로그인 프로세스에서 세션이 없어지는건지 뭔지 모르겠지만 로그인이 안됩니다.

하지만 세션2 프로젝트에서는 로그인이 잘되는데요.

그래서 저는 탭을 두개를 열고 각각 처리 로그인을 해봤습니다.

세션2에서 로그인은 잘됨. 하지만 세션1도 동일한 회원구조라 로그인 처리가됨.

세션 1 또는 세션2에서 로그아웃하면 나머지 한프로젝트의 세션도 종료됨.

 

이러한 현상을 보니 

 

$config['sess_cookie_name'] = 'ci_session';

이 내용이 두 프로젝트가 같기 때문에 동일한 세션을 공유한다고 생각했습니다.

하지만 두 프로젝트의 저 쿠키이름을 다르게 하면 로그인처리가 아예 되질 않습니다..

왜이러는걸까요 ㅠ database방식으로도 바꿔봤지만 소용이 없습니다.

 다음글 코드이그나이터 블록지정 복사 (2)
 이전글 게시판을 만들어 봤는데.. 이렇게 사용하는게 맞는지요? (3)

댓글

변종원(웅파) / 2017/03/16 15:23:29 / 추천 0

쿠키명을 바꾼다고 로그인이 안되는 것이 이상하네요. 세션명에 언더바가 들어가서 문제가 생기는 경우가 있어서

언더바를 빼고 다른 이름으로 바꿔서 작업하기도 합니다.

두 프로젝트는 도메인이 다른거죠?

브레인토스트 / 2017/03/16 15:28:24 / 추천 0

@웅파

도메인은 같습니다.

예를 들어서 도메인이

www.test.com이라면

/세션1프로젝트

/세선2프로젝트

이런 형태입니다.. 저도 도대체 왜 로그인처리가 안되는지 모르겠습니다.

 

브레인토스트 / 2017/03/16 15:30:23 / 추천 0

@웅파

그리고 유달리 특정 프로젝트만 로그인이 안됩니다.. 뭔가 다른 프로젝트에 마치 종속적인 것처럼 보이기 까지하네요 현상이..

말씀대로 프로젝트명으로 쿠키명을 바꿧는데도 동일하네요.. 언더바 없이요..

브레인토스트 / 2017/03/16 15:45:24 / 추천 0

@웅파

// set login session
            $this->session->set_userdata('is_login',TRUE);
var_dump($this->session->userdata());
            // login to LMS
                redirect(site_url());

로그인 요청하는 함수인데요. 여기에 var_dump함수로 찍어보면 올바른 세션값이 출력이됩니다.

문제는 이동하는 site_url에서 위에 만들어진 세션 키값인 is_login을 확인하고 로그인화면이 아닌곳으로 보내버리는데요.

왜 만들어진 세션을 로그인 성공 화면에서 세션을 못찾는지 모르곘습니다 ..

 

변종원(웅파) / 2017/03/16 15:54:05 / 추천 0

도메인이 같으니 당연한 현상입니다. a세션 로그인 -> b 세션 통과

세션, 쿠키 부분을 공부하셔야 겠네요.

브레인토스트 / 2017/03/16 16:04:53 / 추천 0

@웅파

도메인이 같더라도 쿠키명과 세션을 별도의 위치에 저장하거나하면 괜찮은게 아니였나요 ??

브레인토스트 / 2017/03/16 16:32:43 / 추천 0

@변종원(웅파)

실서버에 올려놨을때는 이상없이 잘됩니다. .