CI 묻고 답하기

제목 메뉴 이동시 세션이 매번 새로 생성됩니다.
글쓴이 yishero 작성시각 2012/12/06 22:11:36
댓글 : 5 추천 : 0 스크랩 : 0 조회수 : 19014   RSS



config.php

세션
$config['sess_cookie_name']        = 'ci_session_s_manager';
$config['sess_expiration']        = 7200;
$config['sess_expire_on_close']    = TRUE;
$config['sess_encrypt_cookie']    = TRUE;
$config['sess_use_database']    = TRUE;
$config['sess_table_name']        = 'ci_sessions_s_manager';
$config['sess_match_ip']        = TRUE;
$config['sess_match_useragent']    = TRUE;
$config['sess_time_to_update']    = 300;

쿠키
$config['cookie_prefix']    = "";
$config['cookie_domain']    = "localhost";
$config['cookie_path']        = "/";
$config['cookie_secure']    = FALSE;


로그인 확인 후 세션 설정하는 곳.

        if ( $hid_login == 'ON' )
        {
            $login_id = $this->input->post('login_id');
            $password = $this->input->post('password');
   
            $result = $this->users_model->login_check( $login_id, $password );
   
            if ( $result == FALSE )
            {
                redirect( 'top/login/index?error_type=not_matching' );
            }
           
            $this->session->set_userdata( 'session_user_login_id', $login_id );
            $this->session->set_userdata( 'session_user_level', $result[0]['level'] );
            $this->session->set_userdata( 'session_user_name', $result[0]['name'] );
        }


로그인 후에는 헤더에 세션 정보가 나옵니다. 그런데...
아래 링크의 '입력' 페이지로 이동하면 세션id가 새로 생성되면서 session_user_login_id가 사라져 버립니다.

        <? if ( $this->session->userdata( 'session_user_login_id' ) ) :    ?>

        <div align='right'><b><? echo $this->session->userdata( 'session_user_name' ); ?>님, 반갑습니다.</b>   <a href='<? echo site_url('top/login'); ?>'>로그아웃</a></div>
        <div>
            <a href='<? echo site_url(''); ?>'>조회</a> |
            <a href='<? echo site_url('home/skill/set_skill'); ?>'>입력</a> |
            <a href='<? echo site_url(''); ?>'>검색</a> |
            <a href='<? echo site_url(''); ?>'>정보 수정</a>
        </div>

        <?    endif; ?>



의심가는 곳이 있으신 분 조언 부탁드립니다~!!

 다음글 세션값 표현식? (4)
 이전글 tank_auth 아이디 중복처리에 대해서 (2)

댓글

니삼 / 2012/12/06 22:38:31 / 추천 0
0. 세션 라이브러리 로드 체크
1. 디비에 세션이 제대로 만들어 지는가 확인
우선 해보시겠어요 ?
yishero / 2012/12/07 09:28:37 / 추천 0
세션 라이브러리는 autoload 시켜놓았습니다.
그리고 세션 확인해보니 이렇게 들어있었는데,
a:3:{s:21:"session_user_login_id";s:4:"tttt";s:18:"session_user_level";s:1:"1";s:17:"session_user_name";s:9:"???";}
페이지를 이동하니 데이타가 비어있는 새로운 세션 아이디가 생성되네요.
일단 원인은 알았는데 해결책은 아직 못 찾고 있어요~
니삼 / 2012/12/07 11:12:45 / 추천 0
 $config['sess_cookie_name']        = 'ci_session_s_manager';
여기서 _ 잠시 빼보시고 테스트 한번 해주실수 있을까요? 특문 버그가 ie에서 있는걸로 아는데
yishero / 2012/12/07 13:27:07 / 추천 0
덧글 감사합니다. $config['sess_cookie_name']        = 'smanager'; 로 해도 같은 결과네요.
참고로 CI버전은 2.1.3을 쓰고 있어요.
ci공부 / 2012/12/10 11:07:12 / 추천 0
 $config['sess_use_database']    = TRUE;

이값을 false로 변경후 테스트해보세요

테스트하면서 정상적으로 된다면

userdata값 가져오기위해서 DB쿼리하면서 컬럼값 대소문자때문에 해당 값을 못가져와 

새로운 세션을 만들어 낼 수 도있습니다