CI 묻고 답하기

제목 라이브러리 세션 로드에 관해 여쭙겠습니다.
글쓴이 해행행 작성시각 2016/01/29 13:30:13
댓글 : 9 추천 : 0 스크랩 : 0 조회수 : 20008   RSS

경남 의령에사는 이xx 입니다.(육하원칙...)

 

로그인시 세션생성해서 설정해둘려고 하는중에

 

로그인데이터를 모델을 통해 db에서 긁어 오는거까지 잘되는데

 

세션을 사용하려고 $this->load->library('session'); 를 생성자에 선언만 하면은

 

Error Number: 1054

Unknown column 'data' in 'field list'

SELECT `data` FROM `user` WHERE `id` = '3af74e3c02d89e68eecb918aa894126283cd3a87'

Filename: libraries/Session/drivers/Session_database_driver.php

Line Number: 166

 

와 같은 에러가납니다... 그외 라이브러리와 헬퍼 선언만 해도 같은 에러가납니다.

 

autoload에 설정해둔것 없는상태입니다

 

글이 길어졌는데 요점은 "어디를 손봐야지 라이브러리나 헬퍼를 선언할수있을까요?" 입니다

 

메뉴얼을 찾아봐도 저설정은 어디에서 건드리는지를 찾질못하겠네요.

 

너무 노력안하고 질문만 자주올리는것같아 죄송합니다.

 다음글 POST 값이 안넘어오는 경우가 있나요? (7)
 이전글 DB에 있는 값 SELECT BOX에서 받기 (11)

댓글

해행행 / 2016/01/29 13:43:43 / 추천 0
$config['sess_cookie_name']  = 'ci_session';   //pc에 저장되는 쿠키명
$config['sess_expiration']  = 7200;    //세션 만료 시간
$config['sess_expire_on_close'] = FALSE;   //TRUE일 경우 브라우저를 닫으면 세션이 종료됩니다.
$config['sess_encrypt_cookie'] = FALSE;    //쿠키저장시 암호화 여부 (TRUE로 하시기를 추천합니다)
$config['sess_use_database'] = TRUE;    //DB세션 사용
$config['sess_table_name']  = 'user';    //DB세션을 이용할때 테이블명
$config['sess_match_ip']  = FALSE;    //세션 비교시 ip까지 매칭할지. 식별강화
$config['sess_match_useragent'] = FALSE;   //세션 비교시 브라우저까지 매칭할지. 식별강화
$config['sess_time_to_update'] = 300;    //세션 업데이트 주기. 5분에 한번씩 갱신합니다.

config 쪽 세션 설정입니다.

적힌 주석은 웅파님 config 설정하기 보고 따라적은 것입니다.

kaido / 2016/01/29 13:47:44 / 추천 0

에러메세지를 보면 user 테이블에 data 필드가 없다고 나옵니다.

 

테이블 부터 확인 해보셔야 할것 같습니다.

 

 

해행행 / 2016/01/29 13:52:03 / 추천 0

//kaido 님

있습니다. 

kaido / 2016/01/29 13:56:08 / 추천 0

제가 보기에는 없는 것으로 보입니다.

id , pw 필드는 있지만 data 필드가 없습니다.

 

ci 세션의 기본 베이스는

ci_sessions 테이블 명이며, 

id, ip_address, timestamp, data  필드로 구성되어 있습니다.

[ci 3.0 기준]

 

여기 자세히 나와있습니다. ==> http://stackoverflow.com/questions/30086348/how-i-can-set-a-session-in-codeigniter-3-database

 

일단 기본 베이스로 구성하시고, 나중에 추가로 변경 하시는 것이 좋습니다.

 

변종원(웅파) / 2016/01/29 13:57:32 / 추천 0

없는 것 맞습니다. ^^

 

해당 필드는 mysql gui의 탭입니다. 컬럼(항목 보여주는), 데이터(테이블의 데이터 보여주는)

해행행 / 2016/01/29 14:13:14 / 추천 0

아... 몰랐었습니다 세션 사용할려고하면 ci_session 테이블을 또 만들어줘야하는지를

 

제가 기본 설정부터 잘못했었군요.

 

kaido님 웅파님 

 

감사합니다.

 

죄송한데... 링크주신곳에 가보면 밑에쪽에

$config['sess_driver'] = 'database'; 이부분은 실제사용중인 database 명을 써야하나요 아님 저렇게 놔둬야하나요?

기본설정따라서 할때는 저부분이없어서 주석처리해뒀었습니다

한대승(불의회상) / 2016/01/29 14:23:17 / 추천 0

설정은 'database' 로 두시면 됩니다.

해행행 / 2016/01/29 14:33:15 / 추천 0

답답하네요... 날잡고 설정하는부분을 공부를 해보긴했는데 그래도 부족하네요..

 

session 사용할려면 config쪽 설정 이외에 또 설정해야되는곳 일을까요?

 

ci_session 테이블 생성을 했는데도 여전히 같은에러가 나고있습니다.

해행행 / 2016/01/29 15:07:20 / 추천 0

다들감사합니다 해결했습니다 ^^

멍청하게 세션테이블은 ci_sessions 로 하고

config쪽은 ci_session 으로 둬서 인식을못했네요 ^^

 

감사합니다 다들 복받으실거에요